频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

ADO如何使用Update语法

来源: 作者: 出处:巧巧读书 2006-10-16 进入讨论组


Update

Update表达式,用来更新表中字段的资料值,可以使用WHERE设定特定的条件运算式,符合条件运算式的记录才会被更新。

语法如下:

UPDATE 表
SET 字段新值
WHERE 条件运算式

当您要同时更新多个记录,或者在多个表中更新记录时,就需要用到UPDATE表达式。

您可以同时更新多个字段的资料值,譬如,下例将产品表中的所有记录,价格打九折,运费打七折:

UPDATE 产品

SET 价格 = 价格 * 0.9, 运费 = 运费 * 0.7

UPDATE表达式并不会产生Recordset。当您使用UPDATE表达式更新记录之后,无法复原原始值。因此,如果您想知道哪些记录将被更新,建议您先使用SELECT和相同的WHERE条件运算式来查询结果,确定是您想更新的记录后,然后再执行UPDATE表达式更新记录。

当然您可以随时将的资料作备份复制,万一您使用UPDATE表达式更新了错误的记录,您仍然可以从您的备份中救回这些记录。

让我们看一个於ASP程式码当中使用这个SQL指令的例子。

譬如ASP程式码rs5.asp如下,[Update 产品 Set 数量 = 数量 + 10] 使用Update将产品表中的所有记录的数量字段资料加10:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "Update 产品 Set 数量 = 数量 + 10"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 产品 order by 代号"

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

conn1.Close

%>

</TABLE>

以上的 ASP程式码rs5asp,在用户端使用浏览器,浏览执行数量字段资料加10的结果,每执行一次就将产品表中的数量加10。

Update...Where

UPDATE表达式,可以使用WHERE设定特定的更新条件,符合更新条件的记录才做更新。

譬如ASP程式码rs6.asp如下,[Update 产品 Set 数量 = 数量 + 10 where 种类 = '电脑'] 设定特定的更新条件,[种类] 字段为 [电脑] 的记录才将数量加10:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "Update 产品 Set 数量 = 数量 + 10 where 种类 = '电脑'"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 产品 order by 种类 DESC"

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>

</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>

</TR>

<%

rs3.MoveNext

Loop

rs3.Close

conn1.Close

%>

</TABLE>

以上的 ASP程式码rs6.asp,在用户端使用浏览器,浏览执行的结果,显示数量加10的记录。

Update...Where...In

可以利用Update...Where...In找出重复的记录,譬如ASP程式码rs6.asp如下,[Update 产品 Set 价格 = 价格 - 100 where 种类 = '电脑' and 价格 in (Select 价格 from 产品 where 价格 > 30000)] 表示价格 > 30000而 [种类] 字段为 [电脑] 的记录才降价100:

 

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "Update 产品 Set 价格 = 价格 - 100 where 种类 = '电脑' and 价格 in (Select 价格 from 产品 where 价格 > 30000)"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 产品 order by 种类 DESC"

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>

</TR>

<% Do while not rs3.EOF %>

<TR>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代号")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名称")%></TD>

收藏地址:http://www.qqread.com/asp/2006/10/n222042.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:ADO如何使用Insert语法

较新的文章:ADO使用SELECT语法二
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章