首页 新闻 会员 周边

动态sql语句,存储过程

0
悬赏园豆:5 [待解决问题]

create proc sp_a
@count nvarchar(max) output
as
declare @sql nvarchar(max)
set @sql='select '+@count+'=count(*) from a'
exec @sql
go

declare @count nvarchar(max)

exec sp_a @count output

select @count

以上返回的@count为null。何解?

JustFoi的主页 JustFoi | 初学一级 | 园豆:160
提问于:2015-10-11 11:05
< >
分享
所有回答(3)
0
I,Robot | 园豆:9783 (大侠五级) | 2015-10-11 11:20
0

写成这样试试

declare @sql nvarchar(max)

set @sql=N'select @count=count(*) from a'

exec sp_executesql @sql,N'@count int output',@count=@count out

小白菜T | 园豆:564 (小虾三级) | 2015-10-12 09:49
0

动态sql这样处理都不在一个批处理了,所以变量值传不出去的。按照楼上的改一下。

清海扬波 | 园豆:825 (小虾三级) | 2015-10-12 11:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册