0
以下存储过程正确插入新行,但始终返回0作为输出参数。什么会返回新的行ID?Scope_Identity()总是返回0
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
正确地为我工作。你在桌上有身份专栏吗? – Harsh
如果你有一个'uniqueidentifier'列,它被分配了一个默认值'NewId()',那么你会想要使用['OUTPUT'](https://msdn.microsoft.com/en-us/library/ ms177564.aspx)子句从行中获取任何数据(注意复数)新插入的行的标识列值。 'OUTPUT'可以与'INSERT','UPDATE','DELETE'和'MERGE'一起使用,并且在'UPDATE'的情况下提供对_before_和_after_值的访问。一个值得拥有的工具在你的口袋里。 – HABO
你打电话过程如何? –