当尝试将值插入来自动态SQL的表时,这非常有效。
INSERT TableName(ColumnName1) EXEC('SELECT '+@ColumnName+' from kat.[dbo].[History] ')
但是,当我想使用此动态SQL插入多于1个值时,这将不再有效。
INSERT TableName(ColumnName1, ColumnName2) EXEC('SELECT '+@ColumnName+' from kat.[dbo].[History] '), datum from kat.[dbo].[History] .
这是否有原因?
提前谢谢,
吉
答案 0 :(得分:1)
您的第一个语句,动态SQL返回一个不同的结果集,该结果集将被插入到您的表中。你的第二个陈述,你把它视为一个专栏,但事实并非如此。由于您是从同一个表中提取的,因此您可以在动态SQL中包含datum
,也可以在事后
dbo.history
。