exec 和 @变量 问题

st_snake_china 2003-10-17 01:13:26
declare @bb decimal(8,0)
select @bb = d_fare1 from fare
select @bb
显示为3

然后
declare @bb decimal(8,0)
exec('select @bb = d_fare1 from fare')
select @bb
错误消息:
服务器: 消息 137,级别 15,状态 1,行 1
必须声明变量 '@bb'。

(所影响的行数为 1 行)
不知道是什么原因,各位帮帮忙阿!


...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-10-17
  • 打赏
  • 举报
回复
--变量不能直接用带入exec的查询语句,改为动态参数传递就行了.

declare @bb decimal(8,0)
declare @sql nvarchar(4000)
set @sql='select @bb = d_fare1 from fare'
exec sp_executesql @sql,N'@bb decimal(8,0) out',@bb out
select @bb
zclxyh 2003-10-17
  • 打赏
  • 举报
回复
必须把变量传入到字符串中
declare @bb decimal(8,0)
exec('select '+ @bb + '= d_fare1 from fare')
select @bb

伍子V5 2003-10-17
  • 打赏
  • 举报
回复
declare @bb decimal(8,0)
sp_executesql 'select @bb = d_fare1 from fare',N'@bb decimal(8,0) out',@bb out
select @bb
txlicenhe 2003-10-17
  • 打赏
  • 举报
回复
declare @bb decimal,
@sqls nvarchar(4000)
set @sqls='select @bb = d_fare1 from fare'
exec sp_executesql @sqls,N'@a decimal output',@bb output
select @bb
txlicenhe 2003-10-17
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.829693
[交流]动态SQL语句
yoki 2003-10-17
  • 打赏
  • 举报
回复
declare @bb decimal(8,0)
exec('select '+ @bb + '= d_fare1 from fare')
select @bb

34,575

社区成员

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

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