【发布时间】:2013-08-23 14:03:00
【问题描述】:
由于同一个表的不同版本,我需要执行一个 INSERT 或另一个,具体取决于列是否存在。
我在this thread 处执行了该方法,但 SQL Server 的预检查或“某种编译”检测到在执行期间不会失败的错误。
这里有一些代码
IF COL_LENGTH('TableA', 'Column2') IS NOT NULL
BEGIN
INSERT INTO [dbo].[TableA]([Column1], [Column2], [Column3], [Column4])
SELECT value1, value2, value3, value4
END ELSE
BEGIN
INSERT INTO [dbo].[TableA]([Column1], [Column3], [Column4])
SELECT value1, value3, value4
END
有什么解决方法吗?
【问题讨论】:
-
你从哪里得到你的价值观?是不是一些参数,比如@value1...?
-
@framara 奇怪的案例我尝试使用相同的代码但它的工作,但是你可以先检查列是否存在而不是列长度。
标签: sql sql-server