데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
Alter Table TableName
Alter Column Num Int Not null Identity(1,1)
하니깐 해당 컬럼속성이 자동증가로 안되네요 그냥 에러납니다. ㅠㅠ
그래서
Alter Table TableName
Add Num_id Int Not null Identity(1,1) 하나 자동증가필드를 새로 만들고
Set Identity_Insert TableName Off
update TableName Set Num_id = Num
Set Identity_Insert TableName On
했는데 update구문에서 오류가 나네요 넣을 수 없다고요 ㅠㅠ
어떻게해야 Identity값을 변경할 수 있을까요?
Comment 2
-
처리짱
2013.12.12 12:07
-
CREATE TABLE 과 ALTER TABLE을 MSDN에서 찾아보면
CREATE TBALE은 column_definition에서 IDENTITY를 정의 할 수 있도록 되어 있습니다.
하지만 ALTER TABLE은 ADD시에만 column_definition을 CREATE TBALE할때 처럼 정의 할 수 있고
ALTER COLUMN의 경우에는 데이터 타입이나 NULL옵션등 일부만 정의 할 수 있도록 되어 있습니다.
말하자면 ALTER COLUMN으로 IDINTITY로 변경할 수는 없다는 거죠.
그리고 IDENTITY컬럼에 데이터를 강제로 수정 추가 하려면 SET IDENTITY_INSERT ON을 하셔야 합니다.
Set Identity_Insert 옵션을 줘도 업데이트가 안되요..
해당로우를 다른곳에 저장해 두었다가 삭제하고 위 옵션으로 다시 입력해야해요