挿入から返されたIDをトランザクションの後続の挿入で使用したい
質問
データベースアクセスにRobConeryの
解決
ストアドプロシージャでそれを実行できますか?scope_identityまたはそれ以上の出力句を使用して、必要な値を取得できます。また、すべてのテーブルへのすべての挿入は1つのトランザクションに含まれ、いずれかが失敗した場合にロールバックできます。
他のヒント
これら2つの挿入の間でクエリを実行します。Massiveのこのメソッドが役立つ場合があります: ジェネラコディセタグプレ
SQLは="select scope_identity()" になります
更新2013/02/26
Massiveコードをもう一度見ると、最後に挿入されたIDを取得する信頼できる方法はありません。
上記のコードは、「selectscope_identity()」を作成する接続がプールされている場合にのみ機能します。(挿入した接続と同じである必要があります)。
大規模なtable.Insert(..)
メソッドは、「SELECT @@ IDENTITY」で埋められたIDフィールドを含むDynamicを返します。グローバルスコープから最後に挿入されたIDを取得しますが、これは明らかなバグです(マルチスレッドシナリオで明らかです)。
所属していません StackOverflow