一个字符串内的变量(exec(@str)那种,具体看贴内的例子)和外面的变量如何做运算?

YiYanXiYin 2004-08-09 10:09:42
declare @a int,@sql varchar(4000);
set @a=100;
set @sql='
declare @b int;
set @b=2;
'
exec(@sql)

print '@a*@b='+?--这里该怎么办?(当然例子很简单,仅仅是用来说明问题的,可能@b是通过select出来的,且select语句是动态产生的,@a也通过了一些运算才得出来的。)
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YiYanXiYin 2004-08-09
  • 打赏
  • 举报
回复
Exec sp_Executesql N'@c='+@a+'*'+@b,'@c int out',@c out
好像参数中不能使用加号
老宛 2004-08-09
  • 打赏
  • 举报
回复
我来贴一个sp_Executesql的用法:
eg:
declare @num,
@sqls
set @sqls='select count(*) from '+@servername+'a.dbo.b'
exec(@sqls)
我如何能将exec执行的结果存入变量@num中

declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
exec sp_executesql @sqls,N'@a int output',@num output
select @num
WangZWang 2004-08-09
  • 打赏
  • 举报
回复
如:
Exec sp_Executesql N'@c='+@a+'*'+@b,'@c int out',@c out
zjcxc 元老 2004-08-09
  • 打赏
  • 举报
回复
declare @a int,@b int
declare @sql Nvarchar(4000) --注意数据类型
set @a=100
set @b=50
set @sql='set @re=@a*@b'

declare @re int
exec sp_executesql @sql,N'@a int,@b int,@re int out',@a,@b,@re out
select 结果=@re
YiYanXiYin 2004-08-09
  • 打赏
  • 举报
回复
我就是想得到@a*@b的值

34,590

社区成员

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

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