SQL exec 语句后的对象名称无效
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
然后 returns: 对象名称“#temp”无效。
我试图从 mytable
创建临时 table temp
。但是,似乎 #temp
不是在 execute
之后创建的。但是如果我取出 into #temp
,它确实有效。
本地临时 table (#tmp
) 仅在当前会话中可用,这意味着 sp_executesql
在另一个会话中执行。要访问 temp tables,您应该使用两个 # (##tmp
) 定义全局临时 table,然后您的代码将以这种方式工作:
declare @test nvarchar(1000)
set @test = 'select * into ##temp from mytable'
execute sp_executesql @test
select * from ##temp
这是代码
declare @test nvarchar(1000)
set @test = 'select * into #temp from mytable'
execute sp_executesql @test
select * from #temp
然后 returns: 对象名称“#temp”无效。
我试图从 mytable
创建临时 table temp
。但是,似乎 #temp
不是在 execute
之后创建的。但是如果我取出 into #temp
,它确实有效。
本地临时 table (#tmp
) 仅在当前会话中可用,这意味着 sp_executesql
在另一个会话中执行。要访问 temp tables,您应该使用两个 # (##tmp
) 定义全局临时 table,然后您的代码将以这种方式工作:
declare @test nvarchar(1000)
set @test = 'select * into ##temp from mytable'
execute sp_executesql @test
select * from ##temp