ADO如何使用Insert語法
發表時間:2024-02-12 來源:明輝站整理相關軟件相關文章人氣:
[摘要]Insert可以使一個表新增一個或多個記錄: INSERT INTO:新增一個記錄。 INSERT INTO…SELECT:新增多個記錄。 一、INSERT INTO 新增一個記錄的INSERT INTO語法如下: INSERT INTO 表 [(字段1[,字段2[, ...]])] VALUES...
Insert可以使一個表新增一個或多個記錄:
INSERT INTO:新增一個記錄。
INSERT INTO…SELECT:新增多個記錄。
一、INSERT INTO
新增一個記錄的INSERT INTO語法如下:
INSERT INTO 表 [(字段1[,字段2[, ...]])]
VALUES (值1[,值2[, ...])
新增的記錄,將依照指定字段排列的順序插入對應的值,譬如值1將被插入至字段1,值2將被插入至字段2,依此類推。
若未指定 (字段1[,字段2[, ...]]) ,將依照表所定義的字段排列的順序插入對應的值,在VALUES 子句必須包含表中的每一字段值。
值間須使用逗點分隔,文字字段須使用單用引號 ('值') 括起來。
譬如ASP程式碼rs7.asp如下,[Insert Into 產品(代號,名稱,價格,數量)
Values('C2000','Computre 2000',2000,2)] 和 [Insert Into 產品
Values('C2000', 'Computre 2000',3000,3,'1/1/99',' ','電腦')] 在產品表各新增一筆資料:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft
Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "Insert Into 產品(代號,名稱,價格,數量) Values('C2000','Computre 2000',2000,2)"
Set a = conn1.Execute(sql)
sql = "Insert Into 產品 Values('C2000','Computre 2000',3000,3,'1/1/99',' ','電腦')"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from 產品 where 代號 ='C2000'"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代號
</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名稱
</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">價格
</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">數量
</FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代號")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名稱")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("價格")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("數量")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
%>
</TABLE>
以上的 ASP程式碼rs7.asp,執行的結果,顯示新增兩個記錄資料。
二、Insert Into...Select
若要新增多個記錄,可以使用INSERT INTO…SELECT,語法如下:
INSERT INTO 表 [IN 外部資料庫] [(字段1[,字段2[, ...]])]
SELECT [表.]字段1[, 字段2[, ...]
FROM 表
如果表包含一個主索引,須確定新增到主索引字段的值是唯一的且不可為Null值。
原表的字段為自動編號類型時,如果您要將新增記錄重新編號,就不要在查詢之中包含自動編號字段。若要保持原字段中的值,則將自動編號加在查詢之中。
INSERT INTO將所新增的記錄加入原有的表之中。若要建立一個新的表,可以使用 SELECT... INTO 的語句。
讓我們看一個在ASP程式中使用這個SQL指令的例子。
譬如ASP程式碼rs7.asp如下,[Insert Into 產品(代號,名稱,價格,數量) Select 代號,名稱,價格*10,數量*10 From 產品 where 代號 ='C2000'],將代號為C2000的價格和數量都乘予10後,再新增記錄:
<%
sql = "Insert Into 產品(代號,名稱,價格,數量) Select 代號,名稱,價格*10,數量*10 From 產品 where 代號 ='C2000'"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from 產品 where 代號 ='C2000'"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代號
</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名稱
</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">價格
</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">數量
</FONT></TD></TR>
<% Do while not rs3.EOF %><TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代號")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名稱")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("價格")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("數量")%></TD></TR>
<%
rs3.MoveNext
Loop
rs3.Close
%>
</TABLE>
以上的 ASP程式rs7.asp,在用戶端使用瀏覽器,瀏覽執行的結果,代號為C2000的有兩個記錄,最后兩個為新增的記錄,將價格和數量都乘以10。(出處:熱點網絡)