2011-01-25 3 views
0

삽입/업데이트 트리거를 작성한 테이블 1이 있습니다. 이 트리거는 Table1의 삽입/업데이트 레코드를 Table1_history에 삽입합니다. 트리거가 Table1_history에 기록을 삽입 여부를 테스트하기 위해, 나는 표에 테스트 데이터를 삽입하고 난 오류를 받고 있어요 :"ID 열에 명시 적 값을 삽입 할 수 없습니다."오류가 발생했습니다. 오류

Cannot insert explicit value for identity column in table 'Table1_history' when IDENTITY_INSERT is set to OFF 

표와 Table1_history의 스키마 Table1_history에 추가 'inserted_on_date'필드 제외하고는 동일합니다.

ID 삽입을 ON으로 설정하고 트리거가 작동합니다. 하지만 Table1에 새 레코드를 삽입해야 할 때마다이 작업을 수행해야합니까?

답변

3

IDENTITY INSERT ON을 트리거 자체에 넣으면 table1_history에 값을 넣는 동안 문제가 발생하기 때문에 활성 상태 여야합니다.

또는 Table1_history에서 pk 필드를 IDENTITY로 만들지 말고, Table1의 값을 제공하고 있기 때문에 필요하지 않습니다.

+0

그게 전부입니다. 감사합니다 켄 – Animesh

2

'inserted_on_date'필드가 datetime이라고 가정합니다. 신원 삽입을 해제하고이 열의 기본값을 GETDATE()으로 설정하면 새로 삽입 된 모든 레코드가 레코드가 삽입 될 때 서버에있는 날짜 시간으로 설정됩니다.

2

당신은 어떤 데이터베이스를 언급하지 않는다 그러나 나는 SQL Server 2008의 명령에 세트 ID가 세션 특정

입니다 가정합니다. 그래서 예, 매번 발행해야합니다.

대신 기록 테이블에서 ID 사양을 제거해야합니다. 너는 필요 없어.

관련 문제