SQL Server:使用动态查询插入仅在1插入值时工作

时间:2017-10-17 22:03:24

标签: sql sql-server insert dynamic-sql

当尝试将值插入来自动态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] .

这是否有原因?

提前谢谢,

1 个答案:

答案 0 :(得分:1)

您的第一个语句,动态SQL返回一个不同的结果集,该结果集将被插入到您的表中。你的第二个陈述,你把它视为一个专栏,但事实并非如此。由于您是从同一个表中提取的,因此您可以在动态SQL中包含datum,也可以在事后

之后返回dbo.history