2016-02-19 15 views
0

我正在更新一些代碼,用於刪除與信用限額有關的某些術語的關係。要做到這一點,我得到更新數據庫!向表中添加一列並使用該表中的現有列數據填充

新架構將爲CreditLimitCode添加一列,該列將與沒有列鍵的舊列TermsCodeId相同。我需要暫時保留TermsCodeId,因此重命名是不可能的。

我試過這SO question的答案,但那給了我語法錯誤,因爲CreditLimitCode不存在,我不喜歡默認被添加。

IF COL_LENGTH('CreditApp.dbo.CreditLimit', 'CreditLimitCode') IS NULL 
BEGIN 
    ALTER TABLE CreditApp.dbo.CreditLimit ADD CreditLimitCode VARCHAR(6) NOT NULL DEFAULT (0) 

    UPDATE CreditApp.dbo.CreditLimit SET CreditLimitCode = CreditTermsId WHERE CreditLimitCode = 0 

    PRINT 'Added CreditLimitCode to CreditLimt' 
END 

我不確定在這裏插入後的觸發器是正確的,因爲我正在改變表格不插入行。

+0

你需要使用動態SQL這個 – Lamak

+0

@Lamak你可以詳細一點。我的SQL技能屬於創建表和一些輕微更新。 – nerdlyist

+0

這是用於mysql還是sql-server?他們是不同的產品,可能會有不同的答案。 –

回答

1
exec('UPDATE CreditApp.dbo.CreditLimit 
    SET CreditLimitCode = CreditTermsId 
    WHERE CreditLimitCode = 0') 

,因爲在編譯時CreditLimitCode不存在

相關問題