ホームページ > データベース > mysql チュートリアル > C# で SQL INSERT コマンドの後に挿入された ID を取得する方法

C# で SQL INSERT コマンドの後に挿入された ID を取得する方法

Linda Hamilton
リリース: 2025-01-17 01:36:09
オリジナル
659 人が閲覧しました

How to Retrieve the Inserted ID After an SQL INSERT Command in C#?

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()

古い SQL Server バージョンの場合、

は現在のスコープ内で最後に挿入された行の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート