繁体   English   中英

Scope_Identity()始终返回0

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM