2013-11-27 1 views
0

두 데이터베이스를 비교하고 어떤 열이 변경되었는지 확인해야합니다. 일단 어떤 방식으로 (크기, 타입, 등) 변경된 컬럼을 식별하면, 이전 컬럼 정의와 새로운 컬럼 정의를 캡쳐 (테이블에 기록)해야합니다.SQL Server - 열 정의 구성

예를 들어, INFORMATION_SCHEMA.COLUMNS 테이블을 사용하면 열 크기가 25에서 50으로 변경되었음을 발견했습니다. 두 열 정의를 저장해야합니다. 이 경우 'char (25)'및 'char (50)'일 수 있습니다.

INFORMATION_SCHEMA.COLUMNS 테이블을 사용하여 변경된 사항을 확인하는 데 문제가 없습니다.

일단 열이 변경되었다고 판단되면 열 정의를 어떻게 작성합니까? 이 경우 어떻게 'char (25)'와 'char (50)'을 빌드 할 수 있습니까?

이 유형의 정의를 얻을 수 있습니까? 조각으로 정의를 작성해야하는 경우 어떻게 정의의 모든 구성 요소를 결정해야합니까?

모든 조언이나 제안을 부탁드립니다.

미리 감사드립니다.

+1

시장에 나와있는 스키마 비교를 할 수있는 도구가 많이 있다는 것을 알고 있습니까? 동기화 스크립트를 만들어 대상을 업데이트하여 원본과 동일하게 만드십시오. –

답변

1
select table_name, column_name, 
column_definition = data_type + isnull('(' + convert(varchar, character_maximum_length) + ')', '') 
from information_schema.columns