데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
테이블 내의 특정 칼럼의 위치(ordinal_position)를 변경하고자 하는데 오류가 발생합니다.
"시스템 카탈로그에 대한 임의 업데이트를 사용할 수 없습니다."
아래와 같이 하면 될 것이라고 하여 해 봤는데 오류가 발생하네요..
해결 방법을 부탁드립니다.
use master
go
exec sp_configure 'allow updates',1 – 시스템 업데이트를 가능하게 함.
reconfigure
use master
go
UPDATE INFORMATION_SCHEMA.COLUMNS
SET ORDINAL_POSITION = 12
WHERE table_name = 'testdata'
AND table_schema = 'dbo'
AND column_name = 'nid'
go
UPDATE INFORMATION_SCHEMA.COLUMNS
SET ORDINAL_POSITION = 12
WHERE table_name = 'testdata'
AND table_schema = 'dbo'
AND column_name = 'nid'
sql server2005입니다...
감사합니다.
Comment 3
-
쓸만한게없네(윤선식)
2013.03.05 17:10
원래도 테이블을 디자인에서 순서 조정하는 것을 권장하지 않지만..
테이블 사이즈가 큰 곳에서 디자인으로 순서 조정한다면..
엄청난 재앙이 올 지도...
-
김시준
2013.03.05 19:47
예.. 그렇군요....
오라클은 변경이 가능한데...DB마다의 특성이 있네요...
초짜해커님, 윤선식님 감사합니다...
컬럼 순서를 변경할 수는 없습니다.
카탈로그 뷰에 나타나는 컬럼의 순서는 데이타페이지내의 컬럼 순서에 대한 정보일뿐
이걸 변경한다고 컬럼 순서가 바뀌지는 않습니다.
만약 카탈로그 뷰의 수정을 통해서 컬럼 순서가 바뀐다면
지금 MSSQL의 구조에서는 데이타 페이지 내의 저장 순서도 바뀌어야 하는데
그렇게 되면 대량의 무지막지한 락이 발생하겠죠. 그래서 안만든 듯
SSMS를 이용해서 UI로 컬럼 순서를 변경할 수는 있지만
프로파일러로 감시해보면 새로운 테이블을 순서에 맞게 만들어서 데이타를 이전하는 방식입니다.
조심해서 사용해야 하죠.
새 테이블을 만들어서 데이터를 옮기는게 좋을거 같습니다.
이 주제로 검색을 해보면 이 작업을 쉽게 할 수 있는 방법은 있습니다.