以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  动态sql最后是整数怎么写都不对?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=171161)

--  作者:happyft
--  发布时间:2021/8/20 9:27:00
--  动态sql最后是整数怎么写都不对?
DECLARE @tbn NVARCHAR(16);
SET @tbn = \'生产日报全检\';
DECLARE @repID INT;
SET @repID = 262;

DECLARE @sql NVARCHAR(MAX);
SET @sql = \'SELECT a.dataID FROM \' + @tbn + \' a
      LEFT JOIN JBL.dbo.tabRepData b ON a.dataID = b.dataID
      WHERE b.RepID = \' + @repID

EXEC sp_executesql @sql
上面的语句最后红色那里是一个整数,但动态sql的写法前后加多少个单引号都不可以,都提示转化成数据类型 int 时失败
如果把红色部份制成 WHERE b.RepID = 262 \'  就没有问题,说明就是那里写法不对
应该怎么写才对,
谢谢!

--  作者:有点蓝
--  发布时间:2021/8/20 9:35:00
--  
DECLARE @tbn NVARCHAR(16);
SET @tbn = \'生产日报全检\';
DECLARE @repID NVARCHAR(16);
SET @repID = \'262\';


--  作者:HappyFt
--  发布时间:2021/8/20 9:48:00
--  
可以了,这个动态sql真的会把人弄晕掉,谢谢