>백엔드 개발 >C++ >C#에서 SQL INSERT 후 자동 생성된 ID를 검색하는 방법은 무엇입니까?

C#에서 SQL INSERT 후 자동 생성된 ID를 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-17 21:56:11381검색

How to Retrieve Auto-Generated IDs After an SQL INSERT in C#?

C#에서 SQL INSERT 후 자동 생성된 ID 검색

이 문서에서는 SQL Server 데이터베이스에 새 레코드를 삽입한 후 자동으로 생성된 ID를 효율적으로 검색하는 일반적인 C# 프로그래밍 과제를 다룹니다. 다양한 SQL Server 버전과의 호환성을 강조하면서 여러 가지 방법을 살펴보겠습니다.

"Mem_Basic"이라는 테이블에 데이터를 삽입하고 새로 생성된 "ID"가 필요하다고 가정해 보세요.

<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 )
{
    // ... (code to be added)
}</code>

한 가지 방법은 ExecuteScalar()을 사용하지만 모든 SQL Server 버전에서 항상 신뢰할 수 있는 것은 아닙니다.

<code class="language-csharp">int modified =(int)cmd.ExecuteScalar(); //Potentially unreliable in older SQL Server versions</code>

SQL Server 2005 이상의 경우 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))
{
    // ... (rest of the code) 
}</code>

그러나 이전 SQL Server 버전(2005 이전)의 경우 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))
{
    // ... (rest of the code) 
}</code>

이러한 방법을 사용하면 개발자는 SQLINSERT 작업 후에 자동 생성된 ID를 일관되게 검색할 수 있으므로 C# 애플리케이션의 데이터 관리가 향상됩니다.

위 내용은 C#에서 SQL INSERT 후 자동 생성된 ID를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.