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。何解?
写成这样试试
declare @sql nvarchar(max)
set @sql=N'select @count=count(*) from a'
exec sp_executesql @sql,N'@count int output',@count=@count out
动态sql这样处理都不在一个批处理了,所以变量值传不出去的。按照楼上的改一下。