2014-02-20 3 views
0

모든 열의 VARCHAR 데이터 형식을 NVARCHAR 데이터 형식으로 변경해야하는 테이블 목록이 있습니다.모든 varchar 데이터 형식 열을 SQL Server 2008의 Nvarchar 데이터 형식 열로 변경하는 방법

NVARCHAR로 변경하는 동안 null 및 null 열이 아닌 모든 항목을 가져와야합니다. NVARCHAR로 변환 할 때> 4000보다 큰 열의 크기를 NVARCHAR (MAX)로 변경하고 기본 키 열의 크기를 448로 변경해야합니다. 기본 키 열로 인해 크기가 448보다 커지면 NVARCHAR로 변환되는 동안 문제가 발생합니다. 인덱스 오류

이 쿼리는 길이 Null 허용

SELECT TABLE_CATALOG, 
     TABLE_SCHEMA, 
     TABLE_NAME, 
     COLUMN_NAME, 
     CHARACTER_OCTET_LENGTH, 
     IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE DATA_TYPE='varchar' 

좀 더 도움에 대한 귀하의 질문이 명확하지 않다 당신에게 모든 varchar 열 목록을 줄 것이다

+0

sys.columns에서 cursor.select *를 사용해야한다고 생각합니다. 여기서 user_type_id = 256 이 모든 것을 나타냅니다. – KumarHarsh

+0

도와주세요. 나는 해결책을 고대하고있다 – Axs

+0

이 남자를 참조하십시오 http://stackoverflow.com/questions/1327548/how-to-change-all-sql-columns-of-one-datatype-into-another – KumarHarsh

답변

1

.

내가

이 당신이기 때문에 Null 허용 속성을 유지하려는 뜻 모든 null이 아니 널 열을 얻어야한다 NVARCHAR 변경 동안? 더 명확하게 질문하십시오.

+0

당신이 무엇을하고 있는지 말하는 것은 correct.But하지만 nvarchar 형식을 갖는 기본 키 열의 너비를 248로 변경하려고합니다. 그것은 쿼리를 통해 얻을 수 있습니다. NVARCHAR로 변경하는 동안 null과 null이 아닌 컬럼을 모두 얻어야합니다. – Axs

+0

'PK Constraint'를 삭제하지 않고'PK Column'의 데이터 유형을 변경할 수 없습니다. – Raj

+0

안녕하세요, 모든 제약 조건을 삭제 한 후 데이터 유형을 nvarchar로 변경 중입니다. 데이터베이스 – Axs