2

主キーが自動生成される SQL Server CE テーブルへの挿入を行っています。挿入の完了後に主キーを取得するにはどうすればよいですか?

4

3 に答える 3

7

主キーが ID フィールドであると仮定すると、SELECT @@IDENTITY新しい行を挿入した後にクエリを使用できます。

于 2012-07-11T01:39:08.517 に答える
-1

主キーがテーブルのIDフィールドであることがわかります

SELECT IDENT_CURRENT('テーブル名')

http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/

于 2012-07-11T05:17:23.080 に答える
-1

これを行うには注意が必要です。あなたがする必要があるのは、選択を次のように設定したトランザクションです。

IDbCommand.CommandText += "; select scope_identity()";
object rtn = cmd.ExecuteScalar();
return (long)(decimal)rtn;

select scope_identity() の呼び出しは挿入の主キーではなく、最新の挿入であるため、トランザクション内の単一の選択が重要です。そうしないと、挿入後、最新の PK 挿入を要求する前に発生した別の挿入の主キーになる可能性があります。

注: scope_identity() は (繰り返し可能性があります) IDbCommand に結び付けられる可能性がありますが、以前はそうではなく、上記に従うことは安全です。

于 2012-07-11T05:12:02.817 に答える