1. 程式人生 > >SqlServer用資料字典表替換某一表中某個欄位的值

SqlServer用資料字典表替換某一表中某個欄位的值

base_CompanyType為資料字典表,有ID和CompanyType兩列,如

IDCompanyType
1監理單位
2勘察單位

base_company_info 為替換目標表,companytypeid列可能有多個的CompanyType組合,用“,”隔開,如“監理單位,勘察單位”。現需要將companytypeid列中的CompanyType替換成對應ID,即companytypeid由“監理單位,勘察單位”更新為“1,2”。

SQL語句如下:

DECLARE @ID varchar(50),@CompanyType varchar(50)  
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