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

最後に挿入されたレコードの ID を取得する

    SCOPE_IDENTITY() は、LAST ID を正しく提供します。必要なのは、それを @@Rowcount と組み合わせて、ID の範囲を指定することです。 他のリチャードが指摘するように 、これはインクリメントが 1 に設定されている場合にのみ機能します

    例:

    declare @last int, @first int
    insert ...
    select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1
      

    別の方法 (SQL Server 2008 でこれを使用すると、結果が保証されます) これを行うには、OUTPUT を使用します。 節

    declare @ids table (id int)
    INSERT INTO Table1 (FirstName ,LastName ,EmailAddress)
    output inserted.id into @ids
    
    -- Get the ids
    SELECT id from @Ids
      

    テーブルには、挿入されたすべての ID が含まれるようになりました



    1. MariaDB JSON_EXISTS()の説明

    2. 見出しなしでExcelでクエリ-Oracle

    3. PHP-MySQL-MySQL整数フィールドを安全にインクリメントする方法は?

    4. djangodb接続でPostgreSQLVERBOSITYをオンにする方法は?