2017-10-17 110 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