5

重複の可能性:
SQL Serverで2つのテーブルに同時にデータを挿入するにはどうすればよいですか?

学校のためにプロジェクトをやっているので、どんな助けでも大いに感謝します!

2つのテーブルがあります-2つのテーブルに挿入するにはどうすればよいですか?したがって、両方のテーブルがリンクされます。

最初のテーブルは、自動インクリメントCustomerと呼ばれる主キーで呼び出されますCID

CREATE TABLE [dbo].[Customer](
    [CID] [int] IDENTITY(1,1) NOT NULL,
    [LastName] [varchar](255) NOT NULL,
    [FirstName] [varchar](255) NOT NULL,
    [MiddleName] [varchar](255) NULL,
    [EmailAddress] [varchar](255) NOT NULL,
    [PhoneNumber] [varchar](12) NOT NULL        
 CONSTRAINT [PK__CInforma__C1F8DC5968DD69DC] PRIMARY KEY CLUSTERED 
(

そしてEmployment、親テーブルにリンクされた外部キーを持つという2番目のテーブル

CREATE TABLE [dbo].[Employment](
    [EID] [int] IDENTITY(1,1) NOT NULL,
    [CID] [int] NOT NULL,
    [Employer] [varchar](255) NOT NULL, 
    [Occupation] [varchar](255) NOT NULL,
    [Income] [varchar](25) NOT NULL,
    [WPhone] [varchar](12) NOT NULL,
 CONSTRAINT [PK__Employme__C190170BC7827524] PRIMARY KEY CLUSTERED 
(
4

1 に答える 1

11

あなたはこのようなことをする必要があります:

DECLARE @NewID INT

INSERT INTO Customer(LastName,FirstName,......) VALUES(Value1, Value2, .....)

SELECT @NewID = SCOPE_IDENTITY()

INSERT INTO Employment(CID,Employer,.....) VALUES(@NewID, ValueA,..........)

SCOPE_IDENTITY同じスコープのID列に挿入された最後のID値を返します。スコープはモジュールです:ストアドプロシージャ、トリガー、関数、またはバッチ。したがって、2つのステートメントが同じストアード・プロシージャー、関数、またはバッチにある場合、それらは同じスコープにあります。

于 2012-11-10T04:56:41.367 に答える