Jas*_*kan 3 sql sql-server-2008
在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代替alter语句:
DECLARE @SQL NVARCHAR(4000)
SET @SQL='ALTER TABLE [SETTINGS] ADD [COLOR_SCHEME] int NULL'
EXEC(@SQL)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1242 次 |
| 最近记录: |