[SQL ] 以變數來產生暫存資料表的方式

看板Database (資料庫)作者 (pupx1000你他媽雜碎)時間6年前 (2018/12/22 10:24), 編輯推噓3(304)
留言7則, 4人參與, 6年前最新討論串1/1
資料庫名稱:MS-SQL 資料庫版本:2014 內容/問題描述: 想以變數產生暫存用的資料表 DECLARE @TEST NVARCHAR(MAX) Select @TEST=.......(不管他) SELECT @TEST 到這邊我的@TEST變數已經可以產生像是下列這樣的文字 [78701] char(50),[78702] char(50),[78704] char(50),[78706] char(50) DECLARE @SqlString Nvarchar(MAX) SET @SqlString ='CREATE TABLE #CustomerA(' + @TEST + ');' EXECUTE (@SqlString) 到這邊都沒有出現錯誤文字 但是 Select * from #CustomerA 卻說是無效的物件名稱 '#CustomerA',去查也沒有#CustomerA這個暫存的資料表 到底是錯在哪裡呢? 請各位幫幫忙,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.97.49 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1545445491.A.3F1.html

12/22 11:57, 6年前 , 1F
12/22 11:57, 1F

12/22 12:12, 6年前 , 2F
抱歉,看了三遍還是沒看懂,我的#TEMP column可能會變動
12/22 12:12, 2F

12/22 12:13, 6年前 , 3F
我測試CREATE TABLE #CustomerA([78701] char(50),
12/22 12:13, 3F

12/22 12:15, 6年前 , 4F
[78702] char(50),[78704] char(50) ); 是可以的
12/22 12:15, 4F

12/22 12:16, 6年前 , 5F
但字串組在一起去執行卻是沒有#CustomerA這個表
12/22 12:16, 5F

12/22 15:51, 6年前 , 6F
EXECUTE不能執行CREATE TABLE
12/22 15:51, 6F

05/22 23:51, 6年前 , 7F
Create table ##temptable
05/22 23:51, 7F
文章代碼(AID): #1S7Q1pFn (Database)
文章代碼(AID): #1S7Q1pFn (Database)