테이블 칼럼(column)의 타입을 변경하려고 하는데 재밌(?)는 현상이 있습니다...

일단 테이블을 생성한다.

create table test(
  id varchar(10)
 )

그리고 id의 타입을 varbinary로 변경하려하면 오류가 발생합니다.

alter table test alter column id varbinary(100)

데이터 형식 varchar을(를) varbinary(으)로 암시적으로 변환할 수 없습니다. CONVERT 함수를 사용하여 이 쿼리를 실행하십시오.

 

그래서  alter table test alter column id convert(varbinary(100), id)  라고 해 봤는데 역시 convert가 잘못됐다고 오류 발생.

 

그래서 할 수 없이 아래와 같이 합니다.

1. varbinary 임시 칼럼(id_temp) 하나 추가

2. 기존 칼럼(id) 삭제

3. sp를 사용해 임시칼럼 이름 변경(id_temp -> id)

exec sp_rename 'dbo.test.id_temp', 'id', 'column'

위 sp를 사용하면 다음과 같은 경고문구가 나온다.

주의: 개체 이름 부분을 변경하면 스크립트 및 저장 프로시저를 손상시킬 수 있습니다.

 

왠지 복잡한 느낌이 듭니다.. 이리저리 하다가 다음과 같은 방법을 찾았습니다. 더 간단합니다.

1. alter table test alter column id int      -- int로 변경한다.

2. alter table test alter column id varbinary(100)  -- int를 varbinary로 변경한다.

아주 간단합니다. 칼럼 순서도 안바뀌고.. 사실 칼럼 순서가 안바뀌는 것이 굉장히 중요합니다.

 

그래서 왜 varchar에서 varbinary로 집접 변환은 안되고 int를 거치면 변환이 되는지 궁금합니다.

그리고 위의 방법(추가->삭제->변경)보다 이 방법이 훨신 깔끔한데 어느 방법이 정석인지요?

 

sql server2005, sql server2008 둘다 동일한 현상입니다.

감사합니다.

 

 

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 551
6573 쿼리 질문 드립니다. [1] 한만정덩 2013.03.19 6432
6572 쿼리문 질문 좀 드립니다. [1] 이병권 2013.03.18 6195
6571 Linked 서버 with(nolock) 옵션 [5] dunhill123 2013.03.18 9353
6570 테이블 이전 관련 질문입니다. [2] 김락중_278785 2013.03.18 6141
6569 급한질문입니다 SQL2008 R2 설치문제입니다... [1] kokuri 2013.03.18 9165
6568 min, max, avg 쿼리관련 질문입니다. [3] 초보는힘들어 2013.03.17 8992
6567 쿼리질문이요(일련번호별로 사용자ID별 갯수만큼 자동으로 찍어주는부분) [2] 무뚝이 2013.03.17 7077
6566 쿼리질문이요(일련번호별로 그룹에 해당하는 사용자ID를 자동할당) [2] 무뚝이 2013.03.16 6723
6565 오류 : 18456 심각도 :14 상태 :10 도와주세요 ㅠ [1] 야구소년 2013.03.15 10617
6564 고스트 복구 후 SQL서버 2012가 안돌아가네요. [2] 사야오빠 2013.03.15 7350
6563 테이블에서 특정값 빼는 쿼리 [3] q0822kang 2013.03.14 7776
6562 tempdb 관련 문의 드려요. [2] 수노 2013.03.14 6981
6561 인덱스조각모음 효과를 확인해보고싶어요... [3] Sisylian 2013.03.14 7121
6560 난감한상황... 소트를 하지 않고 빼야하는 상황입니다. [2] 흑풍전설 2013.03.14 6426
6559 데이터 가져오기 관련 질문. [1] 형님 2013.03.13 6328
6558 쿼리 문의 드립니다. [4] 이병권 2013.03.12 6110
6557 여러업체에서 하나의 프로그램을 이용할경우.,. [4] 뽀챙 2013.03.12 5942
6556 테이블조인 중복데이터 문제 ㅠㅜ [2] 파인드쿠폰 2013.03.12 7129
6555 실무에서 도움이 되는 MSSQL SERVER 2008 책 추천 부탁드립니다. [4] dcman 2013.03.12 7172
» 테이블 칼럼(column)의 타입을 변경하려고 하는데 재밌(?)는 현상이... [2] 김시준 2013.03.12 15719





XE Login