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

挿入された行のPKガイドを取得するための最良の方法

    OUTPUT機能を使用して、デフォルト値をパラメーターに戻すことができます。

    CREATE TABLE MyTable
    (
        MyPK UNIQUEIDENTIFIER DEFAULT NEWID(),
        MyColumn1 NVARCHAR(100),
        MyColumn2 NVARCHAR(100)
    )
    
    DECLARE @myNewPKTable TABLE (myNewPK UNIQUEIDENTIFIER)
    
    INSERT INTO 
        MyTable
    (
        MyColumn1,
        MyColumn2
    )
    OUTPUT INSERTED.MyPK INTO @myNewPKTable
    VALUES
    (
        'MyValue1',
        'MyValue2'
    )
    
    SELECT * FROM @myNewPKTable
    

    ただし、主キーとして一意の識別子を使用する場合は注意が必要です。 GUIDでのインデックス作成は、新しく生成されたGUIDをインデックスの中央に挿入し、最後に追加する必要があるため、パフォーマンスが非常に低くなります。 NewSequentialId()用のSQL2005の新機能があります。 GUIDにあいまいさが必要ない場合は、代替案として考えられます。



    1. PostgreSQLのORDERBY句でALIASを使用するにはどうすればよいですか?

    2. MySQLの現在のタイムゾーンを取得するにはどうすればよいですか?

    3. ListViewコントロールチュートリアル-02

    4. tnsnames.oraファイルのないOracle接続文字列