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

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

Mary-Kate Olsen
リリース: 2025-01-17 01:27:08
オリジナル
461 人が閲覧しました

How to Get the Inserted ID After an INSERT Command in SQL Server?

C# から SQL Server に新しく挿入された ID を取得する

この記事では、MVC 4 アプリケーションで C# を使用して SQL Server テーブルにデータを挿入し、その後、新しく追加されたレコードの ID を取得する方法を説明します。 SQL Server 2005 以降、および 2005 より前のバージョンの方法について説明します。

方法 1: SQL Server 2005 以降 (OUTPUT INSERTED.ID を使用)

このアプローチは、挿入ステートメント自体内で挿入された ID を直接取得するための非常に効率的な方法である OUTPUT 句を利用します。

<code class="language-csharp">public class MemberBasicData
{
    public int Id { get; set; }
    public string Mem_NA { get; set; }
    public string Mem_Occ { get; set; }     
}

public int CreateNewMember(string Mem_NA, string Mem_Occ)
{
    using (SqlConnection con = new SqlConnection(Config.ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic (Mem_Na, Mem_Occ) OUTPUT INSERTED.ID VALUES (@na, @occ)", con))
        {
            cmd.Parameters.AddWithValue("@na", Mem_NA);
            cmd.Parameters.AddWithValue("@occ", Mem_Occ);
            con.Open();
            int newId = (int)cmd.ExecuteScalar();
            con.Close();
            return newId;
        }
    }
}</code>
ログイン後にコピー

方法 2: 2005 年より前の SQL Server バージョン (SCOPE_IDENTITY() を使用)

古い SQL Server バージョンの場合、SCOPE_IDENTITY() 関数を使用して、現在のスコープ内で生成された最後の ID 値が取得されます。

<code class="language-csharp">public int CreateNewMember(string Mem_NA, string Mem_Occ)
{
    using (SqlConnection con = new SqlConnection(Config.ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic (Mem_Na, Mem_Occ) VALUES (@na, @occ); SELECT SCOPE_IDENTITY();", con))
        {
            cmd.Parameters.AddWithValue("@na", Mem_NA);
            cmd.Parameters.AddWithValue("@occ", Mem_Occ);
            con.Open();
            int newId = Convert.ToInt32(cmd.ExecuteScalar());
            con.Close();
            return newId;
        }
    }
}</code>
ログイン後にコピー

どちらのメソッドでも同じ結果が得られ、新しく挿入されたレコードの ID が返されます。 選択は SQL Server のバージョンによって異なります。 OUTPUT 句は、新しいバージョンでは効率性と明確さのために一般的に好まれます。 "Config.ConnectionString" を実際の接続文字列に置き換えることを忘れないでください。

以上がSQL Server で INSERT コマンドの後に挿入された ID を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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