ADO如何使用Update語法
發(fā)表時(shí)間:2024-02-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Update Update表達(dá)式,用來更新表中字段的資料值,可以使用WHERE設(shè)定特定的條件運(yùn)算式,符合條件運(yùn)算式的記錄才會被更新。 語法如下: UPDATE 表 SET 字段新值 WHERE 條件運(yùn)算式 當(dāng)您要同時(shí)更新多個(gè)記錄,或者在多個(gè)表中更新記錄時(shí),就需要用到UPDATE表達(dá)式。 您可以同時(shí)...
Update
Update表達(dá)式,用來更新表中字段的資料值,可以使用WHERE設(shè)定特定的條件運(yùn)算式,符合條件運(yùn)算式的記錄才會被更新。
語法如下:
UPDATE 表
SET 字段新值
WHERE 條件運(yùn)算式
當(dāng)您要同時(shí)更新多個(gè)記錄,或者在多個(gè)表中更新記錄時(shí),就需要用到UPDATE表達(dá)式。
您可以同時(shí)更新多個(gè)字段的資料值,譬如,下例將產(chǎn)品表中的所有記錄,價(jià)格打九折,運(yùn)費(fèi)打七折:
UPDATE 產(chǎn)品
SET 價(jià)格 = 價(jià)格 * 0.9, 運(yùn)費(fèi) = 運(yùn)費(fèi) * 0.7
UPDATE表達(dá)式并不會產(chǎn)生Recordset。當(dāng)您使用UPDATE表達(dá)式更新記錄之后,無法復(fù)原原始值。因此,如果您想知道哪些記錄將被更新,建議您先使用SELECT和相同的WHERE條件運(yùn)算式來查詢結(jié)果,確定是您想更新的記錄后,然后再執(zhí)行UPDATE表達(dá)式更新記錄。
當(dāng)然您可以隨時(shí)將的資料作備份復(fù)制,萬一您使用UPDATE表達(dá)式更新了錯(cuò)誤的記錄,您仍然可以從您的備份中救回這些記錄。
讓我們看一個(gè)於ASP程式碼當(dāng)中使用這個(gè)SQL指令的例子。
譬如ASP程式碼rs5.asp如下,[Update 產(chǎn)品 Set 數(shù)量 = 數(shù)量 + 10] 使用Update將產(chǎn)品表中的所有記錄的數(shù)量字段資料加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 產(chǎn)品 Set 數(shù)量 = 數(shù)量 + 10"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from 產(chǎn)品 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">價(jià)格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">數(shù)量</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("價(jià)格")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("數(shù)量")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式碼rs5asp,在用戶端使用瀏覽器,瀏覽執(zhí)行數(shù)量字段資料加10的結(jié)果,每執(zhí)行一次就將產(chǎn)品表中的數(shù)量加10。
Update...Where
UPDATE表達(dá)式,可以使用WHERE設(shè)定特定的更新條件,符合更新條件的記錄才做更新。
譬如ASP程式碼rs6.asp如下,[Update 產(chǎn)品 Set 數(shù)量 = 數(shù)量 + 10 where 種類 = '電腦'] 設(shè)定特定的更新條件,[種類] 字段為 [電腦] 的記錄才將數(shù)量加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 產(chǎn)品 Set 數(shù)量 = 數(shù)量 + 10 where 種類 = '電腦'"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from 產(chǎn)品 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">數(shù)量</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("數(shù)量")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式碼rs6.asp,在用戶端使用瀏覽器,瀏覽執(zhí)行的結(jié)果,顯示數(shù)量加10的記錄。
Update...Where...In
可以利用Update...Where...In找出重復(fù)的記錄,譬如ASP程式碼rs6.asp如下,[Update 產(chǎn)品 Set 價(jià)格 = 價(jià)格 - 100 where 種類 = '電腦' and 價(jià)格 in (Select 價(jià)格 from 產(chǎn)品 where 價(jià)格 > 30000)] 表示價(jià)格 > 30000而 [種類] 字段為 [電腦] 的記錄才降價(jià)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 產(chǎn)品 Set 價(jià)格 = 價(jià)格 - 100 where 種類 = '電腦' and 價(jià)格 in (Select 價(jià)格 from 產(chǎn)品 where 價(jià)格 > 30000)"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from 產(chǎn)品 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">價(jià)格</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("價(jià)格")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式碼rs6.asp,在用戶端使用瀏覽器,瀏覽執(zhí)行的結(jié)果,顯示價(jià)格 > 30000的電腦才降價(jià)100。
(出處:熱點(diǎn)網(wǎng)絡(luò))