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 중국어 웹사이트의 기타 관련 기사를 참조하세요!