iT邦幫忙

0

MS PROC create temp table問題請教

  • 分享至 

  • xImage

如下語法,為較舊的用法
寫在PORC 內

當我做完,
我用SELECT * from tempdb.dbo.#temp1111 指不到資料
但餘tempdb中有看到 #temp1111_______________________________000000E42
這一個TBALE

想請問,這是什麼原因?
有辦法讓她生成的是 #temp1111 嗎?
謝謝

Declare @sSQL varchar(8000),@dTB varchar(20)
SET @dTB='#temp1111'




if object_id('tempdb..#temp1111') is not null  
BEGIN
	print '1111'
    drop table #temp1111  
END
ELSE
BEGIN
	PRINT '2222'
END

--select * from  #temp1111
--DROP table #temp1111

Set @sSQL = 'Create Table '+@dTB+' ('+
                       'prdtype varchar(1),'+
                       'prdno   varchar(10),'                
                       ') '


Exec(@sSQL)
PRINT @sSQL

SELECT * from tempdb.dbo.#temp1111
alien663 iT邦研究生 5 級 ‧ 2024-04-23 14:07:34 檢舉
exec裡面會是另一個Session,不同Session不能跨一般的temp table,如果你這程式沒有同時會有很多支在跑的問題,那可以試試看 ##temp1111
noway iT邦研究生 3 級 ‧ 2024-04-23 17:46:52 檢舉
您好:
沒有效
但這是在同一個session (一個查詢視窗,沒有關閉前,都算這一個SESSION,我記得好像是這樣)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
念戀
iT邦新手 5 級 ‧ 2024-04-23 18:06:51

把 SELECT * from tempdb.dbo.#temp1111 放到 @sSQL 裡面?


Set @sSQL = 'Create Table '+@dTB+' ('+
                       'prdtype varchar(1),'+
                       'prdno   varchar(10)'                
                       '); 
                       SELECT * from tempdb.dbo.#temp1111
                       '
Exec(@sSQL)
PRINT @sSQL

我要發表回答

立即登入回答