【问题标题】:Display data with stored procedure使用存储过程显示数据
【发布时间】:2013-09-04 11:04:21
【问题描述】:

我有以下存储过程..

CREATE PROCEDURE USP_COM_MST_DEL(
    @Code AS INT = 0,
    @Name AS VARCHAR(50)= '',
    @Type AS INT =0,
    @Operation AS varchar(20) ='',
    @Message AS VARCHAR(200) OUTPUT,
    @Status AS VARCHAR(2) OUTPUT
)
AS
BEGIN
    IF(@Operation = 'DISPLAY')
    BEGIN
        IF NOT EXISTS (SELECT * FROM COM_MST WHERE COM_CTCD = @Type)
        BEGIN
            SET @Status = '0'
            SET @Message = 'NO RECORD FOUND'
        END
        ELSE
        BEGIN 
            SET @Status = '0'
            SET @Message = 'NO RECORD FOUND'
            SELECT * FROM COM_MST WHERE COM_CTCD = @Type
        END
    END
END

但是当我尝试运行程序时..它显示错误

USP_COM_MST_DEL @Operation = 'DISPLAY'

错误:

过程或函数“USP_COM_MST_DEL”需要参数“@Message”,但未提供。

【问题讨论】:

    标签: sql-server stored-procedures


    【解决方案1】:

    您需要指定输出参数的位置。

    declare 
        @Message VARCHAR(200),
        @Status VARCHAR(2) 
    
    exec USP_COM_MST_DEL @Operation = 'DISPLAY', @message output, @status output
    

    (这正是错误消息所说的)

    【讨论】:

    • 上面的代码说错误消息**必须将参数号 2 和后续参数作为“@name = value”传递。使用“@name = value”形式后,所有后续参数必须以“@name = value”形式传递。 **
    【解决方案2】:

    现在显示没有错误...

    exec USP_COM_MST_DEL @Operation = 'DISPLAY',@type=4, @message ='', @status =''
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      相关资源
      最近更新 更多