2011-09-30 2 views
1

그래서이 두 문장을했습니다 :ASP.NET SQL 서버 삽입 오류

  string insertUserData = "INSERT INTO W711_User_Data(Network_ID, F_Name, M_Name, L_NAME, Badge, Telephone, Org_Code, Org_Name, Req_Head_Network_ID)Values(@networkID1, @firstName1, @middleName1, @lastName1, @badgeNumber1, @telephone1, @orgCode1, @orgName1, @myUserName1)"; 


     string insertReservationData = "INSERT INTO W711_Reservation_Data(ID, Network_ID, EventTitle, StartDate, EndDate, Justification) Values(null, @networkID2, @eventTitle1, @startDate1, @endDate1, @justification1)"; 

초 문자열의 네트워크 ID가 첫 번째 테이블의 네트워크 ID와 외래 키 관계입니다.

문제는 : 나는 VS2010에서 application를 실행하면 오류가 있습니다 : IDENTITY_INSERTOFF로 설정되어있는 경우 테이블 'W711_Reservation_Data'의 정체성 column에 대한 명시 적 값을 삽입 할 수 없습니다.

SET IDENTITY_INSERT W711_Reservation_Data ON

그러나 그것은 또한 실패하고 다시 같은 오류를 제공합니다

그때 나는이 곳을 읽어! 도와주세요 감사합니다 p.s. SQL 서버

답변

1

경우 ID는 (데이터베이스에서 자동으로 생성 된) ID이며 열 이름이 아닌 열 이름이 아닌 INSERT 문에서 ID 필드를 나열하지 마십시오.

SQL에서 생성 한 ID를 얻으려면 서버 SCOPE_IDENTITY를 (를) 다음과 같이 호출 :

INSERT INTO W711_Reservation_Data(Network_ID, EventTitle, StartDate, EndDate, Justification) Values(@networkID2, @eventTitle1, @startDate1, @endDate1, @justification1)"; 

RETURN SCOPE_IDENTITY() 

편집 : 이것은 귀하의 두 진술 중 두 번째입니다, 나는 ID와 NULL을 제거했습니다 ...

+0

정말 고마워요 ...이 실제로 일했습니다! yeh ID는 identity (1,1)를 사용하여 생성되었습니다. mysql 프로젝트에서 null 기법을 사용했는데 성공했다. 다시 한 번 감사드립니다! –

1

어쨌든 ID 열의 값으로 null을 삽입하려고하는 이유는 무엇입니까? 이 불만의 원인이 다음 방금 열 목록에서 그것을두고 필요에 명시 적 값을 통과하지 못한 가능성이 보인다이다 IDENTITY 열이라고 가정. 즉

INSERT INTO W711_Reservation_Data 
    (Network_ID, EventTitle, StartDate, EndDate, Justification) 
Values 
    (@networkID2, @eventTitle1, @startDate1, @endDate1, @justification1) 
+0

죄송합니다. 나쁜 습관을 때로는 mysql에서 .. 덕분에 일하고 있습니다 –

1

두 가능성이있을 수 있습니다.

1] 첫 번째 테이블의 Network_ID가 기본 키 자동 생성이면 첫 번째 테이블에 데이터를 삽입하십시오. 그런 다음 해당 테이블에서 최신 네트워크 ID를 가져오고 은 두 번째 쿼리와 함께 해당 네트워크 ID를 전달합니다.

2]. 두 번째 테이블의 ID 열이 기본 키이면 두 번째 쿼리에서 null을 전달하지 마십시오. 자동 생성을 수행하거나 쿼리에서 uniquer 값을 전달하십시오.