[英]Create a dynamic table in dynamic SQL and reference it outside of dynamic SQL
請參見下面的代碼:
select top 1 * into #dbusers from dbusers
declare @tsql as varchar(1000)
set @tsql = 'select * from #dbusers'
exec (@tsql)
這按我期望的那樣工作,即動態SQL返回一行。 是否有可能做到這一點:
declare @tsql as varchar(1000)
set @tsql = 'select top 1 * into #dbusers from dbusers'
exec (@tsql)
select * from #dbusers
在這里我得到錯誤:
無效的對象名稱“ #dbusers”
有解決方法嗎?
我意識到您可以通過動態SQL獲得輸出參數。 但是,我也知道使用存儲過程時,不能將表作為輸出參數返回。
是否有可能做到這一點? 是否有解決方法(除了創建物理表之外)?
臨時表僅在創建它們的會話中可用。 使用Dynamic SQL,這意味着在運行Dynamic SQL后將不可用。 您在這里的選擇是:
create table ##GlobalTemp
但是,對於您的特定實例,最好只執行一次select into
,該select into
將根據所選數據生成表結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.