【发布时间】:2014-09-03 14:35:05
【问题描述】:
我正在尝试运行基本的插入 sql 查询。
这里是插入 sql。
Insert into tblABC( X1,X2,X3)
Select X1,X2,X3 from tblXX
问题是tblXX 没有X3 列。
有时X3 会在那里,有时会丢失。当列缺失时,推送一个默认值,例如0。
尝试使用Case语句
CASE WHEN EXISTS (SELECT 1 From information_schema.Columns C
Inner Join Sys.Objects O
On ( O.Object_Id = Object_Id(N'tblXX') And O.Name = C.Table_Name)
and C.Column_Name = 'X3') THEN X3
ELSE 0
END
我在 X3 列上收到无效列名错误
【问题讨论】:
-
如何将默认值推送到不存在的列中?
-
它必须是单独的语句,您可以检查列是否存在并根据结果执行适当的代码。见stackoverflow.com/questions/133031/…
标签: sql sql-server sql-server-2008