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