繁体   English   中英

SQL exec 语句后的 object 名称无效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM