首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 關聯表批量更新:JOIN 語法與舊式語法對比

     編輯:關於SqlServer

場景

根據 WT_BasicInformation 表的 NO 欄位,批量更新 WT_Task 表的 WtNo 欄位,關聯鍵為 WT_Task.WtId = WT_BasicInformation.ID。

方法一:ANSI JOIN 標準語法(推薦)

UPDATE A
SET WtNo = B.NO
FROM WT_Task A
INNER JOIN WT_BasicInformation B ON A.WtId = B.ID;

方法二:舊式逗號連接語法(相容 SQL 2000)

UPDATE A
SET A.WtNo = B.NO
FROM WT_Task A, WT_BasicInformation B
WHERE A.WtId = B.ID;

差異與建議

維度ANSI JOIN舊式語法
可讀性連接條件與篩選條件分離混雜在 WHERE 中
外部連接支援 LEFT/RIGHT JOIN舊式 *= 已棄用
相容性SQL 92 標準,所有現代版本舊版本相容
效能優化器同等處理優化器同等處理

擴展:多表關聯更新

UPDATE T1
SET T1.Col = T3.Val
FROM Table1 T1
INNER JOIN Table2 T2 ON T1.Id = T2.T1Id
INNER JOIN Table3 T3 ON T2.Id = T3.T2Id
WHERE T1.Status = 1;

總結

優先使用 ANSI JOIN UPDATE,語意清晰、支援外部連接、符合現代標準。舊式語法僅用於維護舊系統相容性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved