MSSQL(Sql Server)从拼接的语句和存储过程中取出变量的值
(MSSQL(Sql Server)从拼接的语句和存储过程中取出变量的值,供当前上下文使用
1.某拼接的语句中,要把@sql中计算出的两个值@record1,@record2取出来供下文使用。
EXEC(' SELECT @record1=1000 SET @record2=1002 ');
方法如下:
DECLARE @count1 INT,@count2 INT DECLARE @sql NVARCHAR(200) -- 这里要使用NVARCHAR SET @sql=' SELECT @record1=1000 SET @record2=1002 ' EXEC sp_executesql @sql,N'@record1 int out,@record2 int out',@count1 OUT,@count2 OUT SELECT @count1,@count2 --输出结果1000,1002 --其它代码...
2.在一个存储过程中,取另一个存储过程里计算完的某两个变量的值,返回给当前的存储过程使用。
某个简单的存储过程SP_Test如:
CREATE PROC SP_Test ( @record1 int ,@record2 int ) AS BEGIN SELECT @record1=1000 --赋值方式1 SET @record2=1002 --赋值方式2 END GO
在另一存储过程中想要调用 @record1,@record2的值,这时,给要输出的参数添加out如下
CREATE PROC SP_Test ( @record1 int out ,@record2 int out ) AS BEGIN SELECT @record1=1000 SET @record2=1002 END GO
此时,比如在另一个存储过程或sql中调用SP_Test,如下:
DECLARE @count1 INT,@count2 INT EXEC SP_Test @count1 OUT,@count2 OUT --输出结果1000,1002 即SP_Test中@record1,@record2的值。 SELECT @count1,@count2 --其它代码...
有点类似函数。