SQL 使用sp_executesql获取SQL语句的返回值

SQL 使用sp_executesql获取SQL语句的返回值

**平时使用执行动态SQL语句的是execute,简写是exec,但是遇到需要获取动态SQL返回值的时候,那就需要将exec和
sp_executesql结合使用。**
语法是:

DECLARE @PARAMVAL1 INT = 1
DECLARE @PARAMVAL2 DECIMAL(10,2)=4.51
DECLARE @PARAMVAL3 NVARCHAR(100) = 'hello'
exec sp_executesql N'[SQL]',N'[PARAM1] [TYPE1],[PARAM2] [TYPE2],[PARAM3] [TYPE3] OUTPUT',[PARAMVAL1],[PARAMVAL2],[PARAMVAL3]  OUTPUT

[SQL]用SQL语句替换,如
SELECT @PARAM3=TOP 1[NAME] FROM TESTTB WHERE P1=@PARAM1 AND P2= @PARAM2
[PARAM1],[PARAM2],[PARAM3]用SQL语句中的参数名替换,如
@PARAM1,@PARAM2,@PARAM3,
[TYPE1],[TYPE2],[TYPE3]用SQL中对用参数的类型替换如
INT,NVARCHAR(100),DECIMAL(10,2)
上面两类参数其实是定义SQL中的参数

[PARAMVAL1],[PARAMVAL2],[PARAMVAL3]用自己定义的实参代替,如
@PARAMVAL1,@PARAMVAL2,@PARAMVAL3
上面这类参数是为SQL中的参数赋值。

这样,[PARAMVAL3]就是OUTPUT的了,也就是说,可以获取到动态SQL的返回值了。

猜你喜欢

转载自blog.csdn.net/qq_31729917/article/details/81842905
SQL
今日推荐