나는 행을 삽입하고이 같은 ADO.Net를 사용하여 ID 번호를 반환하고있다 : -이 코드가 데이터베이스에 두 개의 행을 삽입하는 이유는 무엇입니까?
command_string = "INSERT INTO [MyDB].[dbo].[MyTable] (THIS, THAT)" & _
" OUTPUT inserted.ID_NUMER AS ID_NUMBER " & _
" VALUES ('This', 'That')"
Dim insert_command As SqlCommand =
New SqlCommand(command_string, database_connection)
Dim output_parameter As SqlParameter =
New SqlParameter("@id_number", SqlDbType.Int)
Dim transaction As SqlTransaction =
database_connection.BeginTransaction(System.Data.IsolationLevel.Serializable)
insert_command.Transaction = transaction
output_parameter.Direction = ParameterDirection.Output
insert_command.Parameters.Add(output_parameter)
insert_command.ExecuteNonQuery()
Dim reader As SqlDataReader = insert_command.ExecuteReader()
reader.Read()
id_number = reader.GetInt32(0)
reader.Close
transaction.Commit
하지만이 코드를 할 때 목표 테이블에 실행 삽입 두 행. 판독기에서 반환 된 id_number
은 두 번째 행의 ID 번호입니다.
두 행을 삽입하는 이유를 알고있는 사람이 있습니까? 은 (이 질문 here을 통해 확인하고 나는 그것이 같은 문제라고 생각하지 않습니다,하지만 난 코드를 한 번만 실행되는 것을 확인할 수 테이블에 트리거가 없습니다.)