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

最後に挿入されたレコードのIDを取得する-DAO、ODBC、SQL Server2008IDフィールドにアクセスする

    私の知る限り、@@IDENTITY カーソルベースの挿入では機能しません。 DAOとADOはどちらも、舞台裏でカーソルを使用します。

    .Updateを実行した後 値を読み取るだけでID値を取り戻すことができるはずのレコード。

    以下は、キーセットセマンティクスで開かれたADOレコードセットを介して正常に機能します。

    r.Update
    Debug.Print r("ItemID")
    

    以下は、Dynasetセマンティクスで開かれたDAOレコードセットを介して正常に機能します。

    r.Update
    r.Bookmark = r.LastModified
    Debug.Print r("ItemID")
    

    .Requeryは避けてください および.MoveFirst 、並行性の問題が発生しています。検討してください:

    Dim r as DAO.Recordset, db as DAO.Database
    Set db = CurrentDb
    Set r = db.OpenRecordset("SELECT TOP 1 * FROM item ORDER BY ItemID DESC", dbOpenDynaset, dbSeeChanges)
    r.AddNew
    ''// Set field values here
    r.Update
    ''// At this point another user adds a new record
    r.Requery
    r.MoveFirst ''// ORDER BY ItemID DESC means that you're going to see the new user's row
    Debug.Print r("ItemID")
    


    1. 動的jqueryフォームフィールドからmysqlに行を追加する

    2. Psycopg2データベース接続が失われたネットワーク接続でハングする

    3. トリガーから呼び出されたストアドプロシージャの動的ステートメントの回避策

    4. Hibernateを使用したOracleDateのJavaオブジェクトへのマッピング