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;" 'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp" 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;" 'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp" 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;" 'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp" 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> <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("價格")%></TD> </TR> <% rs3.MoveNext Loop rs3.Close conn1.Close %> </TABLE> 以上的 ASP程式碼rs6.asp,於用戶端使用瀏覽器,瀏覽執行的結果,顯示價格 > 30000的電腦才降價100。 注意:联系我时,请一定说明是从【S】看到的信息,谢谢。 |
联系电话: 联系 QQ: 打电话给我、或者加QQ好友时,请一定说明来自(三亚上门维修电脑)谢谢您! 三亚上门维修电脑 | 编辑: