2012-05-10 3 views
1

열 디자인에서 varchar에서 nvarchar로 변경해야하는 프로덕션 데이터베이스가 있습니다. 나는 그것이 디자인을 다시 만들고 저장하는 것을 강요 할 수 있지만 그렇게하는 것이 좋은가요?SQL Server에서 데이터베이스 열 디자인 변경

결과 및 기타 제안 사항은 무엇입니까?

업데이트 : 그것의 SQL 서버 2008

+0

테이블이 얼마나 큰에서 _new을 놓아 새 테이블의 이름을 변경하려면 _old 추가하여 이전 테이블의 이름을 변경? 데이터베이스가 지속적으로 사용되고 있습니까? 아니면 사용자에게 영향을 미치지 않고 업데이트를 실행할 수있는 시간이 있습니까? – GarethD

답변

0

@Ye Myat 아웅, 직접 NVARCHAR에 VARCHAR의 데이터 유형을 변경할 수 있습니다. 구조를 다시 만들 필요가 없습니다. nvarchar는 유니 코드로 데이터를 저장하기 때문에 열의 크기를 처리하면 varchar에 거의 두 배가됩니다.

0

프로덕션 데이터베이스에서 테스트 데이터베이스를 만들고 스크립트를 실행하여 필드 유형을 업데이트하는 것이 좋습니다.

0

는 다음과 같은 단계를 수행해야합니다

  1. 열기 디자인보기에서 테이블.
  2. 이제 디자인 타임에 데이터 유형을 varchar에서 NVarchar로 변경하고 저장하지 마십시오.
  3. 이제 헤더 바의 왼쪽 상단에서 사용할 수있는 "스크립트 생성 변경"을 누릅니다.
  4. 스크립트를 저장하고 실행하십시오.

프로덕션 서버가 데이터 손실을 막을 수있는 가장 효과적인 솔루션입니다.

0

배포 스크립트를 생성하기 위해 Visual Studio Database Edition을 사용하는 경우이 스크립트가 자동으로 생성됩니다. 그러나 뒤에서하는 일은 다음과 같습니다.
1) 새 정의로 표를 만듭니다. 테이블 이름을 {TableName} _new로 지정하면됩니다.
2) 이전 테이블에있는대로 색인을 생성하십시오.
3) 이전 테이블과 동일하게 트리거를 생성하십시오 (사용하지 않도록 설정하십시오).
4) 이전 테이블의 데이터를 새 테이블로 복사하십시오.
5) 테이블 이름
6) 이름

관련 문제