ホームページ >データベース >mysql チュートリアル >C# で SQL INSERT コマンドの後に挿入された ID を取得する方法
C# での SQL INSERT 後の自動生成 ID の取得
C# 経由で SQL Server テーブルにデータを追加する場合、新しいエントリの自動生成された ID を取得することが一般的な要件です。 このチュートリアルでは、OUTPUT
句 (SQL Server 2005 以降) を使用する方法と、SCOPE_IDENTITY()
関数 (古いバージョン) を使用する方法の 2 つの方法を示します。
方法 1: 句 (SQL Server 2005 以降)OUTPUT
句は、ID を含む列を直接指定する方法を提供します。OUTPUT
<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))</code>ここで、
句の INSERTED.ID
は、新しく挿入された行の ID を返します。OUTPUT
方法 2: 関数 (古い SQL Server バージョン)SCOPE_IDENTITY()
は現在のスコープ内で最後に挿入された行の ID を取得します。SCOPE_IDENTITY()
<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))</code>このクエリはデータを挿入し、別の
ステートメントで SCOPE_IDENTITY()
を使用して ID を取得します。SELECT
ID へのアクセス
どちらのメソッドでも、生成された ID には と型キャストを使用してアクセスします:ExecuteScalar()
<code class="language-csharp">int newId = (int)cmd.ExecuteScalar();</code>この手法により、新しく挿入されたレコードの ID が効率的に取得され、異なる SQL Server バージョン間の互換性が提供されます。
以上がC# で SQL INSERT コマンドの後に挿入された ID を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。