如何使用存储过程返回值
第一步:创建一个可以返回值 的存储过程
create proc [brpbomson] @cinvcode varchar(50)
as
declare @dec3 decimal(18,4)
set @dec3=0
return @dec3
第二步:使用存储过程 返回值
UPDATE Ainventory
SET Ainventory.Dec3=exec brpbomson @cinvcode=Ainventory.cinvcode
FROM Cbom LEFT JOIN Ainventory ON Cbom.cinvcode=Ainventory.cinvcode
结果运行报错了,报错如下:
消息 156,级别 15,状态 1,第 2 行
在关键字 'exec' 附近有语法错误。
消息 170,级别 15,状态 1,第 2 行
第 2 行: '.' 附近有语法错误。
我第二步应该如何 修正语法错误 呢
[解决办法]
用函数,不是用存储过程
create function [brpbomson] (@cinvcode varchar(50))
returns decimal(18,4)
as
begin
declare @dec3 decimal(18,4)
set @dec3=0
return @dec3
end
UPDATE Ainventory
SET Ainventory.Dec3=dbo.brpbomson(Ainventory.cinvcode)
FROM Cbom LEFT JOIN Ainventory ON Cbom.cinvcode=Ainventory.cinvcode
create proc [brpbomson]
@cinvcode varchar(50),@dec3 decimal(18,4) OUTPUT
AS
set @dec3=0
return @dec3
--调用
declare @var1 varchar(50),@var2 decimal(18,4)
set @var1='aa'
exec [brpbomson] @var1,@var2 OUTPUT
print @var2