|  | 
| 技术资料  > ASP技术 > XML相关 : ADO如何使用Insert语法 |  | ADO如何使用Insert语法March 25,2004
 |  | 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。
 |  |