다음을 통해 공유


데이터베이스 개체를 다른 스키마로 이동

데이터베이스 개체를 다른 스키마로 이동할 때 데이터베이스 리팩터링을 사용하면 데이터베이스 프로젝트에서 해당 개체에 대한 모든 참조를 보다 쉽고 정확하게 업데이트할 수 있습니다. 예를 들어 보안을 향상시키거나 데이터베이스를 보다 논리적으로 구성하기 위한 목적 등으로 데이터베이스를 여러 개의 스키마로 분할할 수 있습니다. 이러한 분할 후에는 하나 이상의 개체를 새 스키마로 이동할 뿐 아니라 해당 개체에 대한 모든 정규화된 참조를 업데이트해야 합니다. 모든 참조가 새 스키마를 참조하도록 수동으로 변경하면 오류가 발생할 수 있습니다. 데이터베이스 리팩터링을 사용하면 해당 참조를 자동으로 찾고 업데이트할 수 있습니다.

리팩터링 로그를 사용하여 변경 의도 보존

데이터베이스 개체를 다른 스키마로 이동하면 데이터베이스 프로젝트의 리팩터링 로그에 항목이 추가됩니다. 변경 내용을 배포할 때 이 로그를 사용하면 대상 환경에서 해당되는 개체가 의도한 대로 이름이 바뀌도록 할 수 있습니다. 그러지 않으면 기존 개체가 삭제되고 새 이름의 개체가 추가됩니다. 이 로그는 ProjectName.refactorlog라는 XML 파일에 보관됩니다. 데이터베이스 프로젝트를 구성하는 다른 파일을 버전 제어에 체크 인할 때 이 파일도 체크 인해야 합니다. 하지만 ProjectName.refactorlog 파일에는 배포 중 특수한 처리가 필요한 리팩터링 작업에 대한 정보만 포함됩니다.

배포

리팩터링을 사용할 때는 프로덕션 데이터베이스 대신 데이터베이스 프로젝트만 업데이트합니다. 이 전략을 따르면 버전 제어와 팀 개발을 비롯하여 데이터베이스 프로젝트의 모든 이점을 얻을 수 있습니다. 변경 내용을 배포할 경우 리팩터링 로그를 사용하여 데이터베이스 프로젝트의 변경 의도를 보존할 수 있습니다. 예를 들어 DROP 및 ADD 작업 대신 이름 바꾸기를 수행할 수 있습니다.

자세한 내용은 데이터베이스를 빌드하여 격리된 개발 환경에 배포를 참조하십시오.

참고

팀 환경에서는 변경 내용을 프로덕션 서버에 배포하기 전에 응용 프로그램 및 데이터베이스 단위 테스트를 실행해야 합니다. 자세한 내용은 팀 데이터베이스 개발 시작을 참조하십시오.

일반 작업

다음 표에서는 이 시나리오를 지원하는 일반적인 작업에 대한 설명과 해당 작업을 성공적으로 완료하는 방법에 대한 자세한 내용을 볼 수 있는 링크를 보여 줍니다.

Task

지원 항목

실습: 연습 과정을 따라 다른 형식의 리팩터링 외에도 데이터베이스 개체를 다른 스키마로 이동하는 방법을 익힐 수 있습니다.

연습: 데이터베이스 리팩터링 기술 적용

데이터베이스 개체를 다른 스키마로 이동: 리팩터링을 사용하여 데이터베이스 개체를 다른 스키마로 이동하고 데이터베이스 프로젝트에서 해당 개체에 대한 모든 참조를 자동으로 업데이트할 수 있습니다. 리팩터링 작업의 일부로 변경 내용을 적용하기 전에 미리 볼 수 있습니다.

방법: 데이터베이스 개체를 다른 스키마로 이동

리팩터링 작업 실행 취소: 리팩터링 작업을 되돌려야 하는 경우 Visual Studio의 현재 세션에서 해당 리팩터링 작업의 실행을 취소할 수 있습니다.

방법: 데이터베이스 리팩터링 작업 실행 취소

데이터베이스 리팩터링 변경 내용 배포: 데이터베이스 프로젝트를 리팩터링한 후에는 해당 변경 내용을 대상 데이터베이스에 배포해야 합니다. 일반적으로 변경 내용을 버전 제어에 체크 인하기 전에 격리된 개발 환경에 배포하여 테스트합니다.

방법: 데이터베이스 리팩터링 변경 내용 배포

문제 해결: 데이터베이스 리팩터링과 관련된 일반적인 문제를 해결하는 방법에 대해 알아보십시오.

리팩터링 문제 해결

관련 시나리오

데이터베이스 개체에 대한 모든 참조 이름 바꾸기

서버 또는 데이터베이스에 대한 참조 이름 바꾸기

데이터베이스 개체 이름 정규화

SELECT 문에서 와일드카드 문자 확장

참고 항목

개념

데이터베이스 코드 및 데이터 리팩터링

데이터베이스 및 서버 프로젝트 개요