小编Jas*_*kan的帖子

如何在同一批处理语句中更新新添加的列

在SQL Server 2008中,我想向表中添加一个列并立即更新它,但前提是它们之前没有创建过它们.如果之前已创建列,我不想运行更新.

IF NOT EXISTS (SELECT *
               FROM [INFORMATION_SCHEMA].[COLUMNS] 
            WHERE [TABLE_NAME] = 'SETTINGS' AND [COLUMN_NAME] = 'COLOR_SCHEME')
BEGIN
    ALTER TABLE [SETTINGS]
    ADD [COLOR_SCHEME] int NULL

    UPDATE [SETTINGS]
    SET [COLOR_SCHEME] = 1
END
Run Code Online (Sandbox Code Playgroud)

在列添加后添加"GO"不起作用,因为这不是一个完整的批处理语句,但如果我尝试像这样运行它,我会收到错误,"无效的列名'COLOR_SCHEME'."

有关如何在运行更新时使列存在的想法?

sql sql-server-2008

3
推荐指数
1
解决办法
1242
查看次数

标签 统计

sql ×1

sql-server-2008 ×1