set @sql = 'select 100'
Exec sp_executesql @sql,N'@count int output',@count output
set @count=@count+1
select @count代码如上,我只想把@sql的执行结果存入@count,以便在存储过程中继续使用。
但是上面的存储过程执行后,会有两个记录集,第一个显示100,第二个为NULL,
这是怎么回事呢?用这种方法怎么返回101?
Exec sp_executesql @sql,N'@count int output',@count output
set @count=@count+1
select @count代码如上,我只想把@sql的执行结果存入@count,以便在存储过程中继续使用。
但是上面的存储过程执行后,会有两个记录集,第一个显示100,第二个为NULL,
这是怎么回事呢?用这种方法怎么返回101?
DECLARE @sql NVARCHAR(100);
DECLARE @count INT;
set @sql = 'select @count=100'
Exec sp_executesql @sql,N'@count int output',@count output
set @count=@count+1
select @count
select @count=100
pint @count 这才是付值呀
就是变量域,你用了字符串执行后,他的使用域,只能在哪一个字符域里,你要是再定义一个字符船,想引用他是不可以的
set @sql =N'select @count=100'
DECLARE @count INT
Exec sp_executesql @sql,N'@count int output',@count output
set @count=@count+1
select @count
-----------
101(所影响的行数为 1 行)