這看起來相對簡單,但顯然不是。TSQL從動態sql中選擇到Temp表中
我需要通過選擇創建基於現有的表的臨時表到語法:
SELECT * INTO #TEMPTABLE FROM EXISTING_TABLE
問題是,現有的表名是通過參數接受...
我可以通過獲取表的數據:
execute ('SELECT * FROM ' + @tableName)
,但我怎麼娶兩個,這樣我就可以把從直接執行結果到臨時表。
這將用於每個表的列是不相同的,因此在獲取數據之前構建臨時表是不實際的。
我打開任何建議,除了使用全局臨時表。
更新:
這完全是荒謬的,但我與全局臨時表保留的是,這是一個多用戶平臺適合於問題,如果該表將徘徊很長一段時間...
Sooo ..只是爲了克服這部分,我已經開始使用execute來生成全局臨時表。
execute('select * into ##globalDynamicFormTable from ' + @tsFormTable)
然後我用全局臨時表來加載本地臨時表:
select * into #tempTable from ##globalDynamicFormTable
我然後刪除全局表。
drop table ##globalDynamicFormTable
這是骯髒的,我不喜歡它,但暫時,直到我得到一個更好的解決方案,它將不得不工作。
中底:
我想有沒有辦法繞過它。
最好的答案似乎是或者;
在執行命令中創建一個視圖並使用它在存儲過程中加載本地臨時表。
在執行命令中創建一個全局臨時表並使用它來加載本地臨時表。
這樣說我可能會堅持使用全局臨時表,因爲創建和刪除視圖在我的組織中進行了審計,並且我相信他們會質疑,如果它始終發生。
謝謝!
你在什麼版本的SQL Server? – 2012-03-02 15:39:24
sql server 2005 – Patrick 2012-03-02 15:58:26