테이블 칼럼(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 SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 1134
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 1670
6556 테이블조인 중복데이터 문제 ㅠㅜ [2] 파인드쿠폰 2013.03.12 7135
6555 실무에서 도움이 되는 MSSQL SERVER 2008 책 추천 부탁드립니다. [4] dcman 2013.03.12 7185
» 테이블 칼럼(column)의 타입을 변경하려고 하는데 재밌(?)는 현상이... [2] 김시준 2013.03.12 15932
6553 중복 키 행을 삽입할 수 없습니다 <<오류가 나요 [4] 작은꼬마 2013.03.12 13654
6552 질문 드립니다~ [3] 뽀챙 2013.03.11 5992
6551 union all 할 경우 결과값 [4] q0822kang 2013.03.11 6866
6550 파티션 split 시 아래와 같은 에러가 납니다. [2] 하흥수 2013.03.11 7917
6549 [고민] SQL 2000의 DB를 SQL 2008 R2로 복원후 퍼포먼스 문제 [3] 말포이 2013.03.09 7279
6548 메뉴와 하위메뉴 [1] q0822kang 2013.03.08 6929
6547 쿼리문의 드려요. [7] 김주희_283448 2013.03.08 6817
6546 기본 함수들(LEN, getdata, cast, rtirm .. 등)들은 어디에 저장되어 있는지요? [2] 김시준 2013.03.07 7153
6545 운영 중에 shrinkdatabase 해도 될라나요?? [8] 디비러 2013.03.07 8728
6544 sp, fnction, view등의 Query Text(Query source) 조회 [2] 김시준 2013.03.07 6644
6543 count 특정조건 관련해서 질문좀 드리겠습니다. [5] 여대생 2013.03.07 6841
6542 프로파일 로그중에 이상한게 있어서 질문드립니다~ [4] 처리짱 2013.03.07 8340
6541 byte 단위로 잘라서 테이블에 입력하기 [4] 우갸우갸v 2013.03.07 7674
6540 트랜젝션 로그파일이 full 에 가까워지고 있습니다. 도와주세요. [4] 우생 2013.03.07 7455
6539 복원이 안되요 계속 사용중이라는 문구가 뜹니다. [1] 작은꼬마 2013.03.07 9458
6538 MSSQL 느려짐과 관련해 문의 드립니다. [1] 토토로 2013.03.07 20845
6537 이미지 DB 업로드후 엑셀에서 다시 이미지로...? [1] 핸디08 2013.03.07 7344





XE Login