2014-04-21 2 views
0

SqlTransaction 방법을 사용하여 기본 정보를 얻고 싶습니다. 은 "자동 증가"값을 포함하여 기본 값을 삽입하기 위해자동 증가 기본 키가있는 테이블에 빈 행을 삽입하는 방법은 무엇입니까?

using (SqlTransaction transaction = connection.BeginTransaction()) 
{ 
    // insert IT Requirements 
    string strITStaff = "INSERT INTO ITReq"; 
    strITStaff += "SELECT SCOPE_IDENTITY()"; 

    SqlCommand cmdITStaff = new SqlCommand(strITStaff, connection, transaction); 
    ddlITSupport.SelectedValue.ToString()); 

    int ITStaffReq = Convert.ToInt32(cmdITStaff.ExecuteScalar()); 

    // update lanGaymen 
    string strUpdatePhaseSix = "UPDATE lanGaymen SET "; 
    strUpdatePhaseSix += "itReqID = @updateITReq "; 
    strUpdatePhaseSix += "WHERE seasonID = @compareSeason"; 

    SqlCommand cmdUpdatePhaseSix = new SqlCommand(strUpdatePhaseSix, connection, transaction); 
    cmdUpdatePhaseSix.Parameters.AddWithValue("@updateITReq", ITStaffReq); 
} 
+0

제공하신 코드에서 어떤 점이 효과가 있습니까? – abatishchev

+4

btw'strITStaff'는'INSERT INTO ITReqSELECT SCOPE_IDENTITY()'쿼리 구문 분석 오류의 원인이 될 것입니다. 공백을 추가 할 수 있습니다. 그리고 이런 식으로 SQL 쿼리를 생성하지 마십시오. – abatishchev

+0

매개 변수입니다. – user3195396

답변

1

, 당신은 당신의 INSERTDEFAULT VALUES를 사용해야합니다 :

이것은 내가 지금까지있는 것입니다.

string strITStaff = "INSERT INTO ITReq DEFAULT VALUES; SELECT SCOPE_IDENTITY()"; 

이가에 모든 기본 값을 삽입합니다 : 또한, 당신은 (공간도 두 문 사이에 세미콜론이없는 현재의 코드) 당신의 INSERTSELECT SCOPE_IDENTITY() 사이에 적어도 ;이 필요합니다 ITReq 테이블을 선택한 다음 해당 테이블에서 새로 삽입 된 IDENTITY을 선택하십시오.