zoukankan      html  css  js  c++  java
  • 执行动态sql返回参数

    ref: https://support.microsoft.com/en-us/kb/262499

    DECLARE @SQLString NVARCHAR(500)
    DECLARE @ParmDefinition NVARCHAR(500)
    DECLARE @IntVariable INT
    DECLARE @Lastlname varchar(30)
    SET @SQLString = N'SELECT @LastlnameOUT = max(lname)
                       FROM pubs.dbo.employee WHERE job_lvl = @level'
    SET @ParmDefinition = N'@level tinyint,
                            @LastlnameOUT varchar(30) OUTPUT'
    SET @IntVariable = 35
    EXECUTE sp_executesql
        @SQLString,
        @ParmDefinition,
        @level = @IntVariable,
        @LastlnameOUT=@Lastlname OUTPUT
    SELECT @Lastlname
    
    -------------------------------------------------------------
    
    CREATE PROCEDURE Myproc
        @parm nvarchar(10),
        @parm1OUT nvarchar(30) OUTPUT,
        @parm2OUT nvarchar(30) OUTPUT
    AS
        SELECT @parm1OUT=N'参数1parm 1' + @parm
        SELECT @parm2OUT=N'参数2parm 2' + @parm
    GO
    
    DECLARE @SQLString NVARCHAR(500)
    DECLARE @ParmDefinition NVARCHAR(500)
    DECLARE @parmIN nvarchar(10)
    DECLARE @parmRET1 nvarchar(30)
    DECLARE @parmRET2 nvarchar(30)
    SET @parmIN=' returned'
    SET @SQLString=N'EXEC Myproc @parm,
                                 @parm1OUT OUTPUT, @parm2OUT OUTPUT'
    SET @ParmDefinition=N'@parm nvarchar(10),
                          @parm1OUT nvarchar(30) OUTPUT,
                          @parm2OUT nvarchar(30) OUTPUT'
    /*
    EXECUTE sp_executesql
        @SQLString,
        @ParmDefinition,
        @parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT,
        @parm=@parmIN  
    */
    --可以不指定参数名,但位置要正确
    EXECUTE sp_executesql
        @SQLString,
        @ParmDefinition,
        @parmIN,  @parmRET1 OUTPUT, @parmRET2 OUTPUT
    SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
    GO
    
    drop procedure Myproc
  • 相关阅读:
    矩阵快速幂模板C++
    异或空间与高斯消元
    POJ2947解题报告
    Manacher算法笔记 C++
    Python(80)_使用selenium实现第一个web自动化程序
    Python(78)_认识selenium自动化测试
    111
    Python(60)_闭包
    Python(55)_默认参数的陷阱
    Python(53)_实现一个加法计数器
  • 原文地址:https://www.cnblogs.com/wucg/p/5916413.html
Copyright © 2011-2022 走看看