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
。あなたはテーブルにID列を持っていましたか? – Harsh
'NewId()'からデフォルト値が割り当てられた 'uniqueidentifier'カラムを持っているなら、[' OUTPUT'](https://msdn.microsoft.com/en-us/library/)を使いたいでしょう。 ms177564.aspx)句を使用して、行から任意のデータを取得します(複数の注を参照)。新しく挿入された行のID列値。 'OUTPUT'は' INSERT'、 'UPDATE'、' DELETE'、 'MERGE'と一緒に使うことができ、' UPDATE'の場合は_before_と_after_値の両方にアクセスできます。あなたのポケットに入れておく価値のあるツール。 – HABO
どのように手続きを呼び出していますか? –