向表中添加了一个列,并使用该表中的现有列数据填充它

时间:2016-02-19 16:44:09

标签: mysql sql-server

我正在更新一些代码,删除我们拥有的信用限额条款之间的关系。为此,我得更新数据库!

新架构将为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

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

1 个答案:

答案 0 :(得分:1)

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

因为编译时CreditLimitCode不存在