2017-03-17 82 views
0

我將不勝感激對我的查詢一些幫助。下面是一段運行良好的代碼(表創建完成,我在tempdb中看到它),但是當我將相同的代碼移動到我創建的存儲過程中時,##表不再被創建並調用它後來導致無效對象。你能幫我出來嗎?謝謝!!SQL - 動態查詢不會創建表

SET @SQLCreateTableVSC = 'CREATE TABLE ##VSC_Temp ([' 
         [email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         ,['[email protected]+'] nvarchar(max) 
         )' 

    execute sp_executeSQL @SQLCreateTableVSC 
    , N'@VSCcolname nvarchar(max) 
    ,@moname1 nvarchar(max) 
    ,@moname2 nvarchar(max) 
    ,@moname3 nvarchar(max) 
    ,@moname4 nvarchar(max) 
    ,@moname5 nvarchar(max) 
    ,@moname6 nvarchar(max) 
    ,@moname7 nvarchar(max) 
    ,@moname8 nvarchar(max) 
    ,@moname9 nvarchar(max) 
    ,@moname10 nvarchar(max) 
    ,@moname11 nvarchar(max) 
    ,@moname12 nvarchar(max) 
    ,@moname13 nvarchar(max)' 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
    , @[email protected] 
+1

標籤的DBMS你正在使用。該代碼是特定於產品的。 – jarlh

+0

是的,當你的代碼不是真正的sql,而是SQL Server特有的時候,會有sql的標籤,這會導致看着sql標籤的人不滿意你。 –

回答

0

你需要創建表第一那麼它將在動態SQL可

這個作品

create table #temp3 (id int) 
exec ('insert #temp3 values(1)') 

select * from #temp3 

這是不行的

exec ('create table #temp2 (id int) 
    insert #temp2 values(1)') 

select * from #temp2 
+0

我遇到的問題是,我不知道如何創建列名作爲動態SQL之外的變量......可以這樣做嗎? – GeneG