0

例として、テーブルAから最新の挿入IDを取得し、それを使用して別のテーブルBにレコードを入力する方法を尋ねたいだけですか?

4

1 に答える 1

0

質問がうまくいった場合は、1つで2つのINSERTステートメントを実行Stored Procedureし、最初のステートメントから生成されたIDを使用して2番目のステートメントで使用する必要があります。SCOPE_IDENTITY()

create proc yourproc
    (
       -- parameter definitions here
    )
    as
    begin
            insert into Employee
            (FN,LN,Address) 
            values 
            (@FN,@LN,@Address)

    declare @EmployeeID int 
    set @EmployeeID = SCOPE_IDENTITY()

            insert into EmpContact
            (Empid, ContactType, ContactNumber) 
            values 
            (@EmployeeID, @ContactType, @ContactNumber) 
    end

SCOPE_IDENTITYおよび@@IDENTITYは、現在のセッションの任意のテーブルで生成された最後のID値を返します。ただし、SCOPE_IDENTITYは、現在のスコープ内にのみ挿入された値を返します。@@IDENTITYは特定のスコープに限定されません。

SCOPE_IDENTITY(Transact-SQL)-MSDN

于 2013-01-28T18:56:50.003 に答える