2017-10-17 78 views
0

当试图将值插入来自动态SQL的表中时,此功能正常工作。SQL Server:当插入值为1时插入动态查询

INSERT TableName(ColumnName1) EXEC('SELECT '[email protected]+' from kat.[dbo].[History] ') 

但是,当我想用​​这个动态SQL插入多个值时,这不再起作用。

INSERT TableName(ColumnName1, ColumnName2) EXEC('SELECT '[email protected]+' from kat.[dbo].[History] '), datum from kat.[dbo].[History] . 

这是有原因吗?

五月在此先感谢,

回答

1

你的第一条语句,动态SQL返回一个单一的,不同的结果集,它被插入到你的表。你的第二个陈述,你把它当作一个专栏,而不是。既然你是从同一张桌子上拉出来的,你可以在你的动态SQL里包含datum,或者在事实后加入dbo.history

+0

嗨Xedni,谢谢你的回答。你的意思是创建以下内容:INSERT TableName(ColumnName1,ColumnName2)EXEC('SELECT'+ @ ColumnName +',datat from kat。[dbo]。[History]') – Katherine99

+0

这是我的想法,是的。 – Xedni

+0

嗨,谢谢你。你是对的,这是行得通的,因为两列在同一张表中。当你想要结合来自不同表格或常量,连接等的不同动态查询时,问题就出现了。 – Katherine99