拼接字符串中有临时表名,如何正确执行此拼接字符串

kk5595 2014-03-29 07:10:38
存储过程有个临时变量@t,类型为表.。@t经过运算已经存放了若干值。

存储过程的最后希望从表@t中取数据。



--下面是存储过程的部分代码

--取出数据
DECLARE @str2 NVARCHAR(2000)

SET @str2=' SELECT * FROM '+@tableName
+' where '+@identitykey
+' in '
+' (select * from @t )'




PRINT @str2

exec sp_executesql @str2,N'@t TABLE output', @t OUTPUT


会报错,提示请声明变量@t,
...全文
97 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kk5595 2014-03-30
  • 打赏
  • 举报
回复
exec sp_executesql 中的sql参数不能有 table类型 将存储过程的表变量改成临时表#t 就行了

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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