집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에 데이터베이스 삽입 후 마지막으로 삽입된 ID를 검색하는 방법은 무엇입니까?
SQL Server 데이터베이스에 삽입한 후 최신 ID를 가져옵니다
데이터베이스에 데이터를 삽입한 후 가장 최근에 삽입된 레코드의 ID를 가져와야 하는 경우가 많습니다. 시나리오를 살펴보겠습니다. aspnet_GameProfiles 테이블에 행을 삽입한 후 자동으로 증가하는 GamesProfileId를 가져와야 합니다.
다음 코드 조각은 INSERT 문을 실행하지만 새로 생성된 GamesProfileId를 캡처하는 메커니즘이 없습니다. 이를 달성하기 위해 사용되는 SQL Server 버전에 따라 다양한 방법을 살펴보겠습니다.
SQL Server 2005 이상(삽입 트리거 없음)
SQL Server 2005 이상의 경우 aspnet_GameProfiles 테이블에 정의된 삽입 트리거가 없으면 OUTPUT 절을 포함하도록 삽입 문을 수정할 수 있습니다.
<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) OUTPUT INSERTED.ID VALUES(@UserId, @GameId)</code>
이렇게 하면 삽입된 ID가 쿼리 출력으로 자동 반환됩니다. 다음 코드를 사용하여 검색할 수 있습니다:
<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection); ... SqlDataReader reader = myCommand.ExecuteReader(); reader.Read(); Int32 newId = reader.GetInt32(0);</code>
SQL Server 2000 또는 삽입 트리거
SQL Server 2000을 사용 중이거나 테이블에 삽입 트리거가 있는 경우 SCOPE_IDENTITY() 함수를 사용할 수 있습니다.
<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) VALUES(@UserId, @GameId); SELECT SCOPE_IDENTITY()</code>
쿼리를 실행한 후 다음 코드를 사용하여 최근에 삽입된 ID를 검색할 수 있습니다.
<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection); ... Int32 newId = (Int32) myCommand.ExecuteScalar();</code>
이러한 기술을 사용하면 마지막으로 삽입된 GamesProfileId를 효과적으로 얻을 수 있으므로 애플리케이션에서 후속 삽입이나 기타 작업을 위해 이를 사용할 수 있습니다.
위 내용은 SQL Server에 데이터베이스 삽입 후 마지막으로 삽입된 ID를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!