我需要执行一个脚本,将新列添加到表中,然后基于现有列更新该列。表alter脚本失败,因为它看不到它要添加的内容
PRINT 'Adding Column to Table...'
ALTER TABLE dbo.Table
ADD [Column] DATETIME2 NULL;
PRINT 'Updating data...'
UPDATE dbo.Table
SET [column] = ISNULL([ModifiedDate],[CreatedDate])
PRINT 'Finalising table structure...'
ALTER TABLE dbo.Table
ALTER COLUMN [Column] DATETIME2 NOT NULL
PRINT 'Complete!'
但是,当我一次执行它时,它在Update上出现错误,说'Column'不存在。
如果我一次运行一行,它就可以工作。
有没有办法解决这个问题?
我可以绕过这个通过使用EXEC做更新,但似乎hacky。它是唯一的选择吗?
这将是一个好主意。问题在于这种变化是由于一个错误。 ModifiedDate和CreatedDate是审计字段,不应该被应用程序使用,所以我们需要一个单独的“业务价值”列。 – Craig