声明变量问题

dgxs34 2008-03-28 10:09:44
declare @Tmp varchar(110),@id int,@sd int
set @sd=1
set @Tmp = 'select @id=id from [sound] where id='+ str(@sd)
--select @id=0
exec (@Tmp)
if isnull(@id,0) = 0
select 'a'
else
select 'b'

为什么老是提示: 必须声明标量变量 "@id"。
...全文
76 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
rfq 2008-09-03
  • 打赏
  • 举报
回复
高手 ,接分
xiaoxiezi168 2008-08-31
  • 打赏
  • 举报
回复
接分
胡矣 2008-08-31
  • 打赏
  • 举报
回复
JF
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
接分是王道!
pccastle 2008-04-27
  • 打赏
  • 举报
回复
不错
pccastle 2008-04-27
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
我没来错吧,这是非技术区哦,可以接分吗/
zhu_gx 2008-04-15
  • 打赏
  • 举报
回复
低调拼小命接分
wpeng8218 2008-03-28
  • 打赏
  • 举报
回复
declare @Tmp nvarchar(110),@id int,@sd int
set @sd=1
set @Tmp = 'select @id1=id from sound where id='+ cast(@sd as varchar)
execute sp_executesql @Tmp,N'@id1 int output',@id1=@id output
if isnull(@id,0) = 0
select 'a'
else
select 'b'
viva369 2008-03-28
  • 打赏
  • 举报
回复
动态sql中不能使用表(变量),用sp_executesql带输出的参数
wzy_love_sly 2008-03-28
  • 打赏
  • 举报
回复
declare @Tmp nvarchar(110),@id int,@sd int
set @sd=1
set @Tmp = 'select @id=id from [sound] where id='+ str(@sd)
exec sp_executesql @Tmp,N'@id int output', @id output
if isnull(@id,0) = 0
select 'a'
else
select 'b'
hui_hui_2007 2008-03-28
  • 打赏
  • 举报
回复
这是动态sql语句传入参数的问题:

use northwind
declare @Tmp nvarchar(110),@id int,@sd int
set @sd=3
set @Tmp = 'select @id2=Employeeid from Employees where Employeeid='+ cast(@sd as varchar)
print @tmp
exec sp_executesql @Tmp,N'@id2 int output', @id output

if isnull(@id,0) <> 0
select @id
else
select '没有找到'

34,837

社区成员

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

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