asp.netアプリケーションのバックエンドとしてSQLServerがあります。複数の人が同じテーブルに「同時に...」データを挿入する可能性があります。
この投稿から解決策/回答を読んだとき:scope_identity vs ident_current
Ident_current
次に、別のユーザーの挿入のIDを取得できるため、使用しないでください。
ただし、を使用Select Scope_Identity();
するとNULLがSelect IDENT_CURRENT('tableName')
返され、SQL ServerManagementStudioで確認した正しいIDが返されます。
内で行う挿入ステートメントSqlTransaction
。Select IDENT_CURRENT('tableName')
トランザクションの後に行われます。
何が間違っていますか?
更新:
基本クラスによって動的に一緒に構築される私の挿入ステートメント:
INSERT INTO TEST (NAME) VALUES (@Name)
コマンドのパラメータコレクションの値は「xxx」で、すべてがテーブルに正常に挿入されています。
SqlDataReader
C#だけでストアドプロシージャを使用することはありません。
commandText = "INSERT INTO TEST (NAME) VALUES ('Test1');Select Scopy_Identity();"
上記のステートメントを実行している最後のautoincidを取得するにはどうすればよいですか?また、上記を呼び出すExecuteNonQuery
必要ExecuteReader
がありINSERT
ますSELECT
。