在更长的脚本中执行此语句时,我总是收到错误消息:
IF EXISTS (SELECT 1 FROM sys.columns
WHERE name = N'uncertainty_requested'
AND object_id = object_id(N'workorder'))
BEGIN
PRINT 'workorder.uncertainty_requested exists';
END
ELSE
BEGIN
ALTER TABLE workorder
ADD uncertainty_requested CHAR(1);
UPDATE workorder
SET uncertainty_requested = 'F';
PRINT 'workorder.uncertainty_requested added.'
END
GO
错误消息是:
第207级,州立1,第10行,
无效的列名“不确定请求”。
使用SQL Server 2012。
答案 0 :(得分:7)
在执行代码之前先对其进行编译,并且缺少的列是编译时错误。您可以使用动态SQL处理此问题:
ALTER TABLE workorder
ADD uncertainty_requested CHAR(1);
exec sp_executesql N'UPDATE workorder SET uncertainty_requested = ''F''';
PRINT 'workorder.uncertainty_requested added.'