Foxtable(狐表)用户栏目专家坐堂 → 如果将动态sql中的聚合的值赋值给变量


  共有3428人关注过本帖树形打印复制链接

主题:如果将动态sql中的聚合的值赋值给变量

帅哥,在线噢!
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17158 威望:0 精华:0 注册:2014/7/29 19:09:00
如果将动态sql中的聚合的值赋值给变量  发帖心情 Post By:2022/2/22 14:02:00 [显示全部帖子]

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
谢谢!

 回到顶部
帅哥,在线噢!
HappyFt
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17158 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2022/2/22 14:37:00 [显示全部帖子]

那样写不行,会出错提示  必须声明标量变量 "@maxbh"。

 回到顶部