[英]SQL Invalid object name after exec statement
这是代码
declare @test nvarchar(1000)
set @test = 'select * into #temp from mytable'
execute sp_executesql @test
select * from #temp
然后它返回:无效的 object 名称 '#temp'。
我试图从mytable
创建一个临时表temp
。 但是,似乎#temp
不是在execute
之后创建的。 但是,如果我into #temp
,它确实有效。
本地临时表 ( #tmp
) 在当前 session 中可用,这意味着sp_executesql
在另一个 session 中执行。 要访问临时表,您应该使用两个 # ( ##tmp
) 定义全局临时表,然后您的代码将以这种方式工作:
declare @test nvarchar(1000)
set @test = 'select * into ##temp from mytable'
execute sp_executesql @test
select * from ##temp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.