以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如果将动态sql中的聚合的值赋值给变量 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175154) |
-- 作者:happyft -- 发布时间:2022/2/22 14:02:00 -- 如果将动态sql中的聚合的值赋值给变量 DECLARE @cname NVARCHAR(8); DECLARE @tbName NVARCHAR(16); DECLARE @maxbh NVARCHAR(16); --最大编号 DECLARE @sql NVARCHAR(MAX); SET @tbName = \'采购单\' SET @cname = \'采购单号\' SET @sql = \' SELECT MAX(\' + @cname + \') FROM \'+@tbName EXEC sp_executesql @sql 通过上面的语句可以查询得到最大的采购单号,但如何将这个号码赋值给一个变量保存起来后面的sql语句用呢? 用下面的语句执行查询是null,不正确 SET @sql = \' SELECT \'+@maxbh + \' = \'\'\' + MAX(\' + @cname + \') + \'\'\' FROM \'+@tbName EXEC sp_executesql @sql SELECT @maxbh 谢谢! |
-- 作者:有点蓝 -- 发布时间:2022/2/22 14:32:00 -- SET @sql = \' SELECT @maxbh = MAX(\' + @cname + \') FROM \'+@tbName
|
-- 作者:HappyFt -- 发布时间:2022/2/22 14:37:00 -- 那样写不行,会出错提示 必须声明标量变量 "@maxbh"。 |
-- 作者:有点蓝 -- 发布时间:2022/2/22 15:08:00 -- 作用域的问题,参考:https://www.cnblogs.com/walden1024/p/4079777.html |