[英]Scope_Identity() always returns 0
下面的存储过程正确插入了新行,但是对于输出参数始终返回0。 什么会返回新的行ID?
alter procedure DlogErr
@Msg varchar(100), @Cmd nvarchar(max),
@Stk varchar(200), @Pgm varchar(50),
@Lin smallint, @EID int, @UID int output
as
begin
set nocount on
insert into ErrorLog (Src, ErrMsg, Cmd, StackInfo, Itm, Pgm, Lin, ErrID)
values ('VFP', @Msg, @Cmd, @Stk, '', @Pgm, @Lin, @EID);
set @UID = Scope_Identity();
end
最可能的是,你可能已经忘记追加out
关键字,同时调用存储过程:
declare @varUID int
exec DlogErr @Msg='abc', @Cmd = 'foo', @Stk ='', @Pgm = '', @Lin = 0, @EID = 0 , @UID = @varUID out
select @varUID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.