添加新列并在同一SQL脚本中更改值时出错

问题描述 投票:0回答:1

在一个SQL脚本(SQL Server 2016)中,我想使用ALTER TABLE添加一列,并使用UPDATE更改值:

IF NOT EXISTS (SELECT * FROM sys.all_columns  
               WHERE object_id = OBJECT_ID(N'MyTable') and NAME = 'MyAttribute')
BEGIN
    ALTER TABLE MyTable 
        ADD MyAttribute BIT NOT NULL DEFAULT(0);

    UPDATE MyTable 
    SET MyAttribute = 1;
END

但出现错误

无效的列名称'MyAttribute'

对于第5行(update语句)。

代码的背景是:

  • 每次安装数据库的新程序版本时脚本就会运行(我无法更改此行为)
  • [MyAttribute仅应在脚本第一次执行时添加
  • 所有existing记录的值应为1,但所有新记录的默认值必须为0
sql-server alter-table
1个回答
0
投票
它们需要分批运行:
© www.soinside.com 2019 - 2024. All rights reserved.