2017-09-12 1 views
1

객체 "TABLENAME"를 찾을 수 없습니다SQL 서버 IDENTITY_INSERT 내가 자바 넷빈즈에서 실행

executeUpdate("SET IDENTITY_INSERT TableName ON;INSERT INTO TableName (id,name) VALUES (1,'Name1');SET IDENTITY_INSERT TableName OFF;") 

이 오류가 발생합니다 :

Cannot find the object "TableName" because it does not exist or you do not have permissions.

왜 이런 일이 발생하며 어떻게 해결할 수 있습니까?

+4

왜 id 값에 명시적인 값을 입력 하시겠습니까? 그렇게하고 싶다면 왜 ID 유형으로 생성합니까? – Eli

+1

사용 권한 문제 인 것 같습니다. 로그인/사용자가 해당 테이블에 대해 적절한 권한을 가지고 있는지 확인하십시오. 빠른 확인은 해당 사용자를 dbowner로 만드는 것입니다. –

+0

관리자 만 ID 속성을 on으로 설정해야합니다. 이렇게 할 때 데이터 무결성 문제가 발생할 수 있습니다. 권장되는 방법은 아닙니다. 그런데 왜 id 값을 설정하려고합니까? – HLGEM

답변

4

단지 IDENTITY 속성이 이름에서 유일한 패스라고 가정합니다. 특정 ID를 이름과 연관시키지 않으면 명시 적으로 ID를 전달할 필요가 없으며 사용하고 사용하지 않은 값을 따라야하므로 IDENTITY은 쓸모가 없습니다. 이 경우 ID 열에 고유 한 제약 조건을 추가하기 만하면됩니다.

INSERT INTO TableName (name) VALUES ('Name1')