我正在更新一些代码,以删除我们与信用额度相关的某些条款中的关系。为此,我要更新数据库!

新模式将为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


我不确定此处插入后的触发器是否正确,因为我正在更改不插入行的表。

最佳答案

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


因为在编译时CreditLimitCode不存在

10-06 02:18