向临时表插入记录,查询时提示对象名不存在?

亚细亚 2020-04-28 10:50:57

begin
declare @sqlsg varchar(300)
declare @deviceName varchar(30)
set @deviceName='服务器'
set @sqlsg='select * into #testsg from (select * from HardWareRecord_t where deviceName like ''%'+@deviceName+'%'') A '
exec(@sqlsg)
select * from #testsg
end

...全文
164 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_25388347 2020-04-28
  • 打赏
  • 举报
回复
数据库上下文的更改只在 EXECUTE 语句结束前有效 begin declare @sqlsg varchar(300) declare @deviceName varchar(30) set @deviceName='服务器' set @sqlsg='select * into #testsg from (select * from HardWareRecord_t where deviceName like ''%'+@deviceName+'%'') A;select * from #testsg ' exec(@sqlsg) end
亚细亚 2020-04-28
  • 打赏
  • 举报
回复
引用 2 楼 三年丿 的回复:
把#testsg改成##testsg试试

恩,改成全局可以
亚细亚 2020-04-28
  • 打赏
  • 举报
回复
引用 1 楼 qq_25388347 的回复:
数据库上下文的更改只在 EXECUTE 语句结束前有效

begin
declare @sqlsg varchar(300)
declare @deviceName varchar(30)
set @deviceName='服务器'
set @sqlsg='select * into #testsg from (select * from HardWareRecord_t where deviceName like ''%'+@deviceName+'%'') A;select * from #testsg '
exec(@sqlsg)
end

原来如此

引用 1 楼 qq_25388347 的回复:
数据库上下文的更改只在 EXECUTE 语句结束前有效

begin
declare @sqlsg varchar(300)
declare @deviceName varchar(30)
set @deviceName='服务器'
set @sqlsg='select * into #testsg from (select * from HardWareRecord_t where deviceName like ''%'+@deviceName+'%'') A;select * from #testsg '
exec(@sqlsg)
end

如来如此
三年丿 2020-04-28
  • 打赏
  • 举报
回复
把#testsg改成##testsg试试

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧