SqlServer用資料字典表替換某一表中某個欄位的值
阿新 • • 發佈:2019-01-24
base_CompanyType為資料字典表,有ID和CompanyType兩列,如
ID | CompanyType |
1 | 監理單位 |
2 | 勘察單位 |
base_company_info 為替換目標表,companytypeid列可能有多個的CompanyType組合,用“,”隔開,如“監理單位,勘察單位”。現需要將companytypeid列中的CompanyType替換成對應ID,即companytypeid由“監理單位,勘察單位”更新為“1,2”。
SQL語句如下:
DECLARE My_Cursor CURSOR --定義遊標
FOR (SELECT * FROM dbo.base_CompanyType) --查出需要的集合放到遊標中
OPEN My_Cursor; --開啟遊標
FETCH NEXT FROM My_Cursor INTO @ID,@CompanyType; --讀取第一行資料(將base_CompanyType表中的ID和CompanyType放到變數中)
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE dbo.base_company_info SET companytypeid=REPLACE(companytypeid,@CompanyType,@ID); --更新資料
FETCH NEXT FROM My_Cursor INTO @ID,@CompanyType; --讀取下一行資料
END
CLOSE My_Cursor; --關閉遊標
DEALLOCATE My_Cursor; --釋放遊標
GO