新聞中心
數(shù)據(jù)庫Update操作的注意事項

蓬溪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
在數(shù)據(jù)庫中,Update操作是更新現(xiàn)有數(shù)據(jù)的一種操作。它允許您更改已存儲在數(shù)據(jù)庫中的記錄中的值。更新記錄通常是一個重要的操作,因為它允許您保持您的數(shù)據(jù)的最新狀態(tài)。但是,它不是一個容易的操作,需要特別的介意。在這篇文章中,我們將討論在進行數(shù)據(jù)庫更新操作時需要遵循的重要注意事項。
1. 確定更新的記錄
在執(zhí)行更新操作之前,您需要確定要更新哪些記錄。如果您沒有太強的確定性,這可能會導致您更新不正確的數(shù)據(jù)記錄。我們建議在執(zhí)行更新操作之前編寫和測試查詢操作,以確保您僅更新正確的記錄。使用 WHERE關鍵字可以幫助您過濾數(shù)據(jù)記錄,以確保只更新目標記錄。例如,如果您要更新所有來自“2023年以前”的記錄,請使用以下查詢:
“`
UPDATE 表名稱 SET 行名稱 = 新值 WHERE 日期
“`
2. 更新前備份
在進行任何操作之前,請始終備份數(shù)據(jù)庫。使用存儲過程或腳本將非常有助于確保數(shù)據(jù)庫更改的兼容性和可靠性,并允許您快速恢復意外發(fā)生的事情。這將確保數(shù)據(jù)的完整性和確保您始終具有可用的備份副本。
3. 更新時刻考慮事務性
更新操作可以與事務一起操作,以確保如果操作失敗,則可以在回滾到之前的狀態(tài)。本質(zhì)上,事務允許您執(zhí)行一系列相關操作,同時確保所有操作都可以成功完成。具體來說,您可以使用COMMIT和ROLLBACK語句來完成事務操作。如果您不使用事務,可能會在更新操作過程中丟失數(shù)據(jù)。
4. 確保更新的行是一致的
在更改記錄時,請確保您在所有表中維護記錄的狀態(tài)的一致性。具體來說,您需要注意所有引用該記錄的外鍵。如果您忘記在必要的子表中更新值,則可能會導致數(shù)據(jù)完整性問題。確保更改記錄的所有字段,并且它們的值都是有效的,對于避免引起問題將非常有幫助。
5. 優(yōu)化更新的查詢
在更新操作中,查詢的效率是至關重要的。您可以采取措施來確保查詢效率更大化,包括啟用索引,減少記錄的數(shù)量和一次修改盡可能多的記錄。對于大型表和更新操作特別如此。您可能需要更改表結構和數(shù)據(jù)類型以獲得更好的查詢性能。
6. 測試更新后數(shù)據(jù)的有效性
完成Update操作后,您需要檢查更新后的記錄是否正確。根據(jù)更新性質(zhì),驗證數(shù)據(jù)是否已正確更改可能會非常困難。因此,您需要花費時間測試更新后的數(shù)據(jù)并確保它們與預期的結果相符。
在數(shù)據(jù)庫中執(zhí)行更新操作是必要的。但它是非常慎重的操作,需要在執(zhí)行前進行適當?shù)牟邉澓蜏y試。我們強烈建議您在執(zhí)行任何更新操作之前對記錄進行備份,定期檢查并驗證更新數(shù)據(jù)的有效性,并優(yōu)化查詢以提高操作效率。遵循這些注意事項,可以確保您的數(shù)據(jù)庫維護和更新操作順利高效執(zhí)行。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220SQL里怎么用UPDATE 更新大量SELECT 數(shù)據(jù)
在數(shù)據(jù)庫的操作中,更新數(shù)據(jù)巧稿,是很常見的情況。如櫻扮下參考:
1.創(chuàng)建一個臨時表,用于演示sqlserver語法中的更新更新修改方法。
2. 創(chuàng)建另一個臨時表,以演示如何將數(shù)據(jù)從一孝頌孝個臨時表更新到另一個臨時表,如下圖。
3.在臨時表中插入幾行測試數(shù)據(jù),但不在Total列中插入值。
4.從#tblUpdate中查詢臨時表select *中的測試數(shù)據(jù);從#tblTotal中選擇*。
5.使用update更新臨時表#tblUpdate中的Total結果,假設Total = num * price update #tblUpdate set Total = Num * Price。
6. 再次查詢臨時表#tblUpdate的結果,您可以看到之前為NULL的Total列有值。
注意事項:
SQL的核心部分相當于關系代數(shù),但又具有關系代數(shù)所沒有的許多特點,如聚集、數(shù)據(jù)庫更新等。它是一個綜合的、通用的、功能極強的關系數(shù)據(jù)庫語言。
舉例: 有兩張表t1, t2 這兩張表通過id字段關聯(lián)。
tt2
id aid b
1 beijing北京
2 shanghai2 上海塵告
3 guangzhou 廣州
把t1表的a字搭敗段,更新為知兄顫對應的t2表的b字段,可以使用以下語法
update t1 set t1.a = (select t2.b from t2 where t1.id = t2.id)
where exists (select 1 from t2 where t1.id = t2.id)
數(shù)據(jù)有規(guī)律的話,可以用循環(huán)
sql中 的update set 怎么用啊
Transact-SQL 參考
UPDATE
更改表中的現(xiàn)有數(shù)據(jù)。
語法
UPDATE
{
table_name WITH ( )
| view_name
| rowset_function_limited
}
SET
{ column_name = { expression | DEFAULT | NULL }
| @variable = expression
| @variable = column = expression }
{ { >
> }
|
{ { cursor_name } | cursor_variable_name }
> }
) >
::=
table_name table_alias > ) >
| view_name table_alias >
| rowset_function table_alias >
| derived_table table_alias ) >
|
::=
ON
| CROSS JOIN
|
::=
} >
JOIN
::=
{ FASTFIRSTROW
| HOLDLOCK
| PAGLOCK
| READCOMMITTED
| REPEATABLEREAD
| ROWLOCK
| SERIALIZABLE
| TABLOCK
| TABLOCKX
| UPDLOCK
}
::=
{ INDEX ( index_val )
| FASTFIRSTROW
| HOLDLOCK
| NOLOCK
| PAGLOCK
| READCOMMITTED
| READPAST
| READUNCOMMITTED
| REPEATABLEREAD
| ROWLOCK
| SERIALIZABLE
| TABLOCK
| TABLOCKX
| UPDLOCK
}
::=
{ { HASH | ORDER } GROUP
| { CONCAT | HASH | MERGE } UNION
| {LOOP | MERGE | HASH } JOIN
| FAST number_rows
| FORCE ORDER
| MAXDOP
| ROBUST PLAN
| KEEP PLAN
}
參數(shù)
table_name
需要更新的表的名稱。如果該表不在當前服務器或數(shù)據(jù)庫中,或不為當前用戶所有,這個名稱可用鏈接服務器、數(shù)據(jù)庫和所有者名稱來限定。
WITH ( )
指定目標表所允許的一個或多個表提示。需要有 WITH 關鍵字和圓括號。不允許有 READPAST、NOLOCK 和 READUNCOMMITTED。有關表提示的信息,請參見 FROM。
view_name
要更新的視圖的名稱。通過 view_name 來引用的視圖必須是可更新的。用 UPDATE 語句進行的修改,至多只能影響視圖的 FROM 子句所引用的基表中的一個。有關可更新視圖的更多信息,請參見 CREATE VIEW。
rowset_function_limited
OPENQUERY 或 OPENROWSET 函數(shù),視提供程序功能而定。有關提供程序所需功能的更多信息,請參見 OLE DB 提供程序的 UPDATE 和 DELETE 語句要求。有關行集函數(shù)的更多信息,請參見 OPENQUERY 和 OPENROWSET。
SET
指定要更新的列或變量名稱的列表。
column_name
含有要更改數(shù)據(jù)的列的名稱。column_name 必須駐留于 UPDATE 子句中所指定的表或視圖中。標識列不能進行更新。
如果指定了限定的列名稱,限定符必須同 UPDATE 子句中的表或視圖的名稱相匹配。例如,下面的內(nèi)容有效:
UPDATE authors
SET authors.au_fname = ‘Annie’
WHERE au_fname = ‘Anne’
FROM 子句中指定的表的別名不能作為 SET column_name 子句中的限定符使用。例如,下面的內(nèi)容無效:
UPDATE titles
SET t.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
若要使上例合法,請從列名中刪除別名 t。
UPDATE titles
SET ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
expression
變量、字面值、表達式或加上括弧的返回單個值的 subSELECT 語句。expression 返回的值將替換 column_name 或 @variable 中的現(xiàn)有值。
DEFAULT
指定使用對列定義的默認值替換列中的現(xiàn)有值。如果該列沒有默認值并且定義為允許空值,這也可用來將列更改為 NULL。
@variable
已聲明的變量,該變量將設置為 expression 所返回的值。
SET @variable = column = expression 將變量設置為與列相同的值。這與 SET @variable = column, column = expression 不同,后者將變量設置為列更新前的值。
FROM
指定用表來為更新操作提供準則。有關更多信息,請參見 FROM。
table_name table_alias >
為更新操作提供準則的表的名稱。
如果所更新表與 FROM 子句中的表相同,并且在 FROM 子句中對該表只有一個引用,則指定或不指定 table_alias 均可。如果所更新表在 FROM 子句中出現(xiàn)了不止一次,則對該表的一個(且僅僅一個)引用不能指定表的別名。FROM 子句中對該表的所有其它引用都必須包含表的別名。
view_name table_alias >
為更新操作提供準則的視圖的名稱。帶 INSTEAD OF UPDATE 觸發(fā)器的視圖不能是含有 FROM 子句的 UPDATE 的目標。
WITH ( )
為源表指定一個或多個表提示。有關表提示的信息,請參見本卷的”FROM”。
rowset_function table_alias >
任意行集函數(shù)的名稱和可選別名。有關行集函數(shù)列表的信息,請參見行集函數(shù)。
derived_table
是從數(shù)據(jù)庫中檢索行的子查詢。derived_table 用作對外部查詢的輸入。
column_alias
替換結果集內(nèi)列名的可選別名。在選擇列表中放入每個列的一個別名,并將整個列別名列表用圓括號括起來。
由兩個或更多表的積組成的結果集,例如:
SELECT *
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.c3 = tab2.c3
RIGHT OUTER JOIN tab3 LEFT OUTER JOIN tab4
ON tab3.c1 = tab4.c1
ON tab2.c3 = tab4.c3
對于多個 CROSS 聯(lián)接,請使用圓括號來更改聯(lián)接的自然順序。
指定聯(lián)接操作的類型。
INNER
指定返回所有相匹配的行對。廢棄兩個表中不匹配的行。如果未指定聯(lián)接類型,則這是默認設置。
LEFT
指定除所有由內(nèi)聯(lián)接返回的行外,所有來自左表的不符合指定條件的行也包含在結果集內(nèi)。來自左表的輸出列設置為 NULL。
RIGHT
指定除所有由內(nèi)聯(lián)接返回的行外,所有來自右表的不符合指定條件的行也包含在結果集內(nèi)。來自右表的輸出列設置為 NULL。
FULL
如果來自左表或右表的某行與選擇準則不匹配,則指定在結果集內(nèi)包含該行,并且將與另一個表對應的輸出列設置為 NULL。除此之外,結果集中還包含通常由內(nèi)聯(lián)接返回的所有行。
指定聯(lián)接提示或執(zhí)行算法。如果指定了 ,也必須明確指定 INNER、LEFT、RIGHT 或 FULL。有關聯(lián)接提示的更多信息,請參見 FROM。
JOIN
表示聯(lián)接所指定的表或視圖。
ON
指定聯(lián)接所基于的條件。盡管經(jīng)常使用列和比較運算符,但此條件可指定任何謂詞,例如:
FROM Suppliers JOIN Products
ON (Suppliers.SupplierID = Products.SupplierID)
當條件指定列時,列不一定必須具有相同的名稱或數(shù)據(jù)類型;但是,如果數(shù)據(jù)類型不一致,則這些列要么必須相互兼容,要么是 Microsoft? SQL Server? 能夠隱性轉換的類型。如果數(shù)據(jù)類型不能隱式轉換,則條件必須使用 CAST 函數(shù)顯式轉換數(shù)據(jù)類型。
有關搜索條件和謂詞的更多信息,請參見搜索條件。
CROSS JOIN
指定兩個表的矢量積。返回同樣的行,就像要聯(lián)接的表只列于 FROM 子句中,并且未指定 WHERE 子句。
WHERE
指定條件來限定所更新的行。根據(jù)所使用的 WHERE 子句的形式,有兩種更新形式:
搜索更新指定搜索條件來限定要刪除的行。
定位更新使用 CURRENT OF 子句指定游標。更新操作發(fā)生在游標的當前位置。
為要更新行指定需滿足的條件。搜索條件也可以是聯(lián)接所基于的條件。對搜索條件中可以包含的謂詞數(shù)量沒有限制。有關謂詞和搜索條件的更多信息,請參見搜索條件。
CURRENT OF
指定更新在指定游標的當前位置進行。
GLOBAL
指定 cursor_name 指的是全局游標。
cursor_name
要從中進行提取的開放游標的名稱。如果同時存在名為 cursor_name 的全局游標和局部游標,則在指定了 GLOBAL 時,cursor_name 指的是全局游標。如果未指定 GLOBAL,則 cursor_name 指局部游標。游標必須允許更新。
cursor_variable_name
游標變量的名稱。cursor_variable_name 必須引用允許更新的游標。
OPTION ( )
指定優(yōu)化程序提示用于自定義 SQL Server 的語句處理。
{ HASH | ORDER } GROUP
指定在查詢的 GROUP BY 或 COMPUTE 子句中指定的聚合使用哈?;蚺帕?。
{ LOOP | MERGE | HASH |} JOIN
指定在整個查詢中所有的聯(lián)接操作由循環(huán)聯(lián)接、合并聯(lián)接或哈希聯(lián)接來完成。如果指定了不止一個聯(lián)接提示,則查詢優(yōu)化器為允許的聯(lián)接選擇開銷最少的聯(lián)接策略。如果在同一個查詢中也為特定表對指定了聯(lián)接提示,則該提示在兩表的聯(lián)接中優(yōu)先。
{ MERGE | HASH | CONCAT } UNION
指定所有的 UNION 操作通過合并、哈?;虼?lián) UNION 來完成。如果指定了不止一個 UNION 提示,查詢優(yōu)化器就會從這些指定的提示中選擇開銷最少的策略。
說明 如果在 FROM 子句中亦為任何特定聯(lián)接表對指定了聯(lián)接提示,則該提示優(yōu)先于任何 OPTION 子句中指定的聯(lián)接提示。
FAST number_rows
指定對查詢進行優(yōu)化,以便快速檢索之一個 number_rows(非負整數(shù))。在之一個 number_rows 返回后,查詢繼續(xù)進行并生成完整的結果集。
FORCE ORDER
指定查詢語法所指示的聯(lián)接順序在查詢優(yōu)化過程中予以保留。
MAXDOP number
只對指定了 sp_configure 的 max degree of paralleli 配置選項的查詢替代該選項。當使用 MAXDOP 查詢提示時,所有和 max degree of paralleli 配置選項一起使用的語義規(guī)則均適用。有關更多信息,請參見 max degree of paralleli 選項。
ROBUST PLAN
強制查詢優(yōu)化器嘗試執(zhí)行一個計劃,該計劃以性能為代價獲得更大可能的行大小。如果沒有可行的計劃,則查詢優(yōu)化器返回錯誤,而不是將錯誤檢測延遲至查詢執(zhí)行。行可能包含長度可變的列;SQL Server 允許定義更大可能大小超出 SQL Server 處理能力的行。通常,應用程序存儲實際大小在 SQL Server 處理能力范圍內(nèi)的行,而不管更大可能大小。如果 SQL Server 遇到過長的行,則返回執(zhí)行錯誤。
KEEP PLAN
強制查詢優(yōu)化器對查詢放寬估計的重新編譯閾值。當對表中索引列的更改(更新、刪除或插入)達到估計數(shù)目時查詢會自動重新編譯,該估計數(shù)目即為重新編譯閾值。指定 KEEP PLAN 將確保當表有多個更新時不會頻繁地對查詢進行重新編譯。
注釋
僅當所修改的表是 table 變量時,用戶定義的函數(shù)的主體中才允許使用 UPDATE 語句。
table 變量在其作用域內(nèi)可以像常規(guī)表一樣訪問。這樣,table 變量可作為一個表來使用,在該表中數(shù)據(jù)用 UPDATE 語句進行更新。
用 OPENDATASOURCE 函數(shù)構造的、作為服務器名稱部分的一個四段名稱,在 UPDATE 語句中可以出現(xiàn)表名的任何地方都可作為表源使用。
如果對行的更新違反了某個約束或規(guī)則,或違反了對列的 NULL 設置,或者新值是不兼容的數(shù)據(jù)類型,則取消該語句、返回錯誤并且不更新任何記錄。
當 UPDATE 語句在表達式取值過程中遇到算術錯誤(溢出、被零除或域錯誤)時,則不進行更新。批處理的剩余部分不再執(zhí)行,并且返回錯誤信息。
如果對參與聚集索引的一列或多列的更新導致聚集索引和行的大小超過 8,060 字節(jié),則更新失敗并且返回錯誤信息。
當對表的 UPDATE 操作定義 INSTEAD-OF 觸發(fā)器時,將執(zhí)行觸發(fā)器而不執(zhí)行 UPDATE 語句。SQL Server 以前的版本只支持在 UPDATE 和其它數(shù)據(jù)修改語句中定義 AFTER 觸發(fā)器。
當更新查詢既更新聚集鍵又更新一個或多個 text、image 或 Unicode 列時,如果可以更改不止一行,則更新操作失敗,SQL Server 返回錯誤信息。
用 UPDATE 修改 text、ntext 或 image 列時將對列進行初始化,向其指派有效文本指針,并且分配至少一個數(shù)據(jù)頁(除非用 NULL 更新該列)。
說明 UPDATE 語句將記入日志。如果要替換或修改大塊的 text、ntext 或 image 數(shù)據(jù),請使用 WRITETEXT 或 UPDATETEXT 語句而不要使用 UPDATE 語句。WRITETEXT 和 UPDATETEXT 語句(根據(jù)默認)不記入日志。
所有的 char 和 nchar 列向右填充至定義長度。
對于用于遠程表以及本地和遠程分區(qū)視圖的 UPDATE 語句,忽略 SET ROWCOUNT 選項的設置。
如果 ANSI_PADDING 設置為 OFF,則會從插入 varchar 和 nvarchar 列的數(shù)據(jù)中刪除所有尾隨空格,但只包含空格的字符串除外。這些字符串被截斷為空字符串。如果 ANSI_PADDING 設置為 ON,則插入尾隨空格。Microsoft SQL Server ODBC 驅動程序和用于 SQL Server 的 OLE DB 提供程序自動對每個連接設置 ANSI_PADDING ON。這可在 ODBC 數(shù)據(jù)源中進行配置,或者通過設置連接特性或屬性進行設置。
使用 WHERE CURRENT OF 子句的定位更新將在游標的當前位置更新單行。這比使用 WHERE 子句限定要更新的行的搜索更新更為精確。當搜索條件不唯一標識一行時,搜索更新將修改多行。
如果 UPDATE 語句包含了未指定每個所更新列的位置只有一個可用值的 FROM 子句(換句話說,如果 UPDATE 語句是不確定性的),則其結果將不明確。例如,對于下面腳本中的 UPDATE 語句,表 s 中的兩行都滿足 UPDATE 語句中的 FROM 子句的限定條件,但是將用 s 的哪一行來更新表 t 內(nèi)的行是不明確的。
CREATE TABLE s (ColA INT, ColB DECIMAL(10,3))
GO
CREATE TABLE t (ColA INT PRIMARY KEY, ColB DECIMAL(10,3))
GO
INSERT INTO s VALUES(1, 10.0)
INSERT INTO s VALUES(1, 20.0)
INSERT INTO t VALUES(1, 0.0)
GO
UPDATE t
SET t.ColB = t.ColB + s.ColB
FROM t INNER JOIN s ON (t.ColA = s.ColA)
GO
當組合 FROM 和 WHERE CURRENT OF 子句時,可能發(fā)生同樣的問題。在本例中,表 t2 中的兩行都滿足 UPDATE 語句中的 FROM 子句的限定條件。將用表 t2 的哪一行來更新表 t1 中的行是不明確的。
CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT)
GO
CREATE TABLE t2(d1 INT PRIMARY KEY, d2 INT)
GO
INSERT INTO t1 VALUES (1, 10)
INSERT INTO t2 VALUES (1, 20)
INSERT INTO t2 VALUES (2, 30)
go
DECLARE abc CURSOR LOCAL FOR
SELECT * FROM t1
OPEN abc
FETCH abc
UPDATE t1 SET c2 = c2 + d2
FROM t2
WHERE CURRENT OF abc
GO
設置變量和列
變量名可用于 UPDATE 語句來顯示受影響的舊值和新值。這種方法應該僅用在 UPDATE 語句只影響單個記錄時;如果 UPDATE 語句影響多個記錄,則變量只含有所更新行中的一行的值。
權限
UPDATE 權限默認授予 sysadmin 固定服務器角色成員、db_owner 和 db_datawriter 固定數(shù)據(jù)庫角色成員以及表的所有者。sysadmin、db_owner 和 db_securityadmin 角色的成員和表所有者可以將權限給其他用戶。
如果 UPDATE 語句包含 WHERE 子句,或 SET 子句中的 expression 使用了表中的某個列,則還要求所更新表的 SELECT 權限。
示例
A. 使用簡單的 UPDATE
下列示例說明如果從 UPDATE 語句中去除 WHERE 子句,所有的行會受到什么影響。
下面這個例子說明,如果表 publishers 中的所有出版社將總部搬遷到佐治亞州的亞特蘭大市,表 publishers 如何更新。
UPDATE publishers
SET city = ‘Atlanta’, state = ‘GA’
本示例將所有出版商的名字變?yōu)?NULL。
UPDATE publishers
SET pub_name = NULL
也可以在更新中使用計算值。本示例將表 titles 中的所有價格加倍。
UPDATE titles
SET price = price * 2
B.把 WHERE 子句和 UPDATE 語句一起使用
WHERE 子句指定要更新的行例如,在下面這個虛構的事件中,北加利福尼亞更名為 Pacifica(縮寫為 PC),而奧克蘭的市民投票決定將其城市的名字改為 Bay City。這個例子說明如何為奧克蘭市以前的所有居民(他們的地址已經(jīng)過時)更新表 authors。
UPDATE authors
SET state = ‘PC’, city = ‘Bay City’
WHERE state = ‘CA’ AND city = ‘Oakland’
必須編寫另一個語句來更改北加利福尼亞其它城市的居民所在的州名。
C.通過 UPDATE 語句使用來自另一個表的信息
本示例修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新銷售記錄。
UPDATE titles
SET ytd_sales = titles.ytd_sales + sales.qty
FROM titles, sales
WHERE titles.title_id = sales.title_id
AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
這個例子假定,一種特定的商品在特定的日期只記錄一批銷售量,而且更新是最新的。如果不是這樣(即如果一種特定的商品在同一天可以記錄不止一批銷售量),這里所示的例子將出錯。例子可正確執(zhí)行,但是每種商品只用一批銷售量進行更新,而不管那一天實際銷售了多少批。這是因為一個 UPDATE 語句從不會對同一行更新兩次。
對于特定的商品在同一天可銷售不止一批的情況,每種商品的所有銷售量必須在 UPDATE 語句中合計在一起,如下例所示:
UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
D. 將 UPDATE 語句與 SELECT 語句中的 TOP 子句一起使用
這個例子對來自表 authors 的前十個作者的 state 列進行更新。
UPDATE authors
SET state = ‘ZZ’
FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1
WHERE authors.au_id = t1.au_id
比方有一張學生纖拍表 你要更改小A同學的學號
數(shù)據(jù)庫的update的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于數(shù)據(jù)庫的update,數(shù)據(jù)庫update操作的注意事項,SQL里怎么用UPDATE 更新大量SELECT 數(shù)據(jù),sql中 的update set 怎么用啊的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設,成都品牌建站設計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務,全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
本文標題:數(shù)據(jù)庫update操作的注意事項(數(shù)據(jù)庫的update)
文章位置:http://fisionsoft.com.cn/article/coesoph.html


咨詢
建站咨詢
