sql >> データベース >  >> RDS >> Sqlserver

コードで最新の int 型主外部キーを生成するさまざまな方法

    唯一の実行可能な方法 これを行うには、INT IDENTITY を使用します SQL Server データベースが提供するもの。これは信じてください - あなたは信じない 自分でやってみたい!

    使うだけ

    CREATE TABLE dbo.YourTableOne(ID INT IDENTITY(1,1),  ...other columns...)
    

    最初のテーブルに行を挿入すると、次のように ID 列の値を取得できます:

    -- do the insert into the first table
    INSERT INTO dbo.YourTableOne(Col1, Col2, ...., ColN)
    VALUES (Val1, Val2, ...., ValN)
    
    DECLARE @NewID INT
    
    -- get the newly inserted ID for future use
    SELECT @NewID = SCOPE_IDENTITY()
    
    -- insert into the second table, use first table's new ID for your FK column
    INSERT INTO dbo.YourTableTwo (FKColumn, ......) VALUES(@NewID, ......)
    

    更新: 最初のテーブルに複数の行を挿入し、生成された複数の ID を取得する必要がある場合 値、OUTPUT を使用 節:

    -- declare a table variable to hold the data
    DECLARE @InsertedData TABLE (NewID INT, ...some other columns as needed......)
    
    -- do the insert into the first table
    INSERT INTO dbo.YourTableOne(Col1, Col2, ...., ColN)
    OUTPUT Inserted.ID, Inserted.Col1, ..., Inserted.ColN INTO @InsertedData(NewID, Col1, ..., ColN)
    VALUES (Val1, Val2, ...., ValN)
    

    そしてそこから行きます。新しく挿入された行から任意の値を一時テーブル変数に取得できます。これにより、2 番目のテーブルのどの行にどの新しい ID 値を使用するかを決定できます



    1. プレッシャーの下でデータベースのパフォーマンスを測定する

    2. キーによって日付範囲の行を生成する方法

    3. ファイルが存在するかどうかを確認しますか?

    4. テーブルがドロップされると、依存トリガーはどうなりますか?