Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从存储过程获取输出_Sql Server_Stored Procedures - Fatal编程技术网

Sql server 从存储过程获取输出

Sql server 从存储过程获取输出,sql-server,stored-procedures,Sql Server,Stored Procedures,我已经创建了这个存储过程 CREATE PROCEDURE AddNewMaterialType4 (@category varchar(15), @materialType varchar(50), @userID varchar(15), @result1 varchar(15) OUTPUT) AS DECLARE @count1 INT; SET @count1 = 0; SELECT @count1 = CO

我已经创建了这个存储过程

CREATE PROCEDURE AddNewMaterialType4 
     (@category varchar(15), 
      @materialType varchar(50),
      @userID varchar(15), 
      @result1 varchar(15) OUTPUT)
AS
    DECLARE @count1 INT;
    SET @count1 = 0;

    SELECT @count1 = COUNT(*) 
    FROM [vmsMaterialType]
    WHERE category = @category 
      AND materialType = @materialType;

    IF @count1 = 0
    BEGIN
        SET NOCOUNT ON;

        INSERT INTO [vmsMaterialType] ([category], [materialType],[createdBy])
        VALUES (@category, @materialType, @userID);

        SET @result1 = 'Success';
    END
    ELSE
       SET @result1 = 'Fail';
GO
当我执行以下操作时,我并没有得到我期望的结果(成功/失败),相反,它给了我输出我声明的结果1

declare 
    @result1 varchar(15) = '1';
begin 
    execute AddNewMaterialType4 @category = 'Beef', @materialtYPE = '25 Trim', @userID = 'JJ',  @result1 = @result1;
    print @result1;
end;

execute AddNewMaterialType4
调用中,必须明确声明
@result1
是一个
输出
变量。请尝试以下方法:

declare 
    @result1 varchar(15) = '1';
begin 
    execute AddNewMaterialType4 @category = 'Beef', @materialtYPE = '25 Trim', @userID = 'JJ',  @result1 = @result1 output;
    print @result1;
end;

调用过程时,指定
@result1=@result1 output
,而不仅仅是
@result1=@result1
。初始化
@result1
变量有什么用?没有。我只是简单地复制/粘贴原始代码。我很确定OP只是将其设置为区分他们期望的“真”或“假”值与其他值。@xedni“输出”和“输出”之间有区别吗?它们看起来都很好。我有几年的plsql经验。。。过渡并不像我想象的那么简单P