데이터베이스 개체의 이름을 바꾸기 전 고려 사항
Visual Studio Premium에서 데이터베이스 개체의 이름을 바꾸기 전에 다음 문제를 고려해야 합니다.
뷰의 열 이름 바꾸기
빌드 오류의 영향
데이터 생성 계획에 미치는 영향
단위 테스트에 미치는 영향
Transact-SQL 스크립트에 미치는 영향
뷰의 열 이름 바꾸기
뷰는 테이블이나 다른 뷰의 열을 선택하는 문으로 구성됩니다. 뷰에서 사용되는 테이블을 기본 테이블이라고 합니다. 예를 들어 다음 코드는 HumanResources.Employee 테이블을 기반으로 하는 뷰를 만듭니다.
CREATE VIEW dbo.vEmployeeTest
AS
SELECT EmployeeID, Title
FROM HumanResources.Employee
뷰에서 열 이름을 바꾸는 경우 기본 테이블의 열 이름은 바뀌지 않습니다. 대신 다음 예제에 표시된 대로 뷰의 이름에 별칭이 지정됩니다.
CREATE VIEW dbo.vEmployeeTest
AS
SELECT EmployeeID, Title AS JobTitle
FROM HumanResources.Employee
CREATE VIEW dbo.vEmployeeTest (EmployeeID, JobTitle)
AS
SELECT EmployeeID, Title
FROM HumanResources.Employee
참고
뷰에서 SELECT *를 사용하여 기본 테이블에서 데이터를 가져오는 경우 *가 확장되어 개별 열을 나열합니다. 이름이 바뀐 열에는 이전 예제처럼 별칭이 지정됩니다.
뷰와 기본 테이블 양쪽에서 열 이름을 바꾸려는 경우 대신 테이블의 열 이름을 바꾸면 뷰의 열이 자동으로 업데이트됩니다.
빌드 오류의 영향
Visual Studio Premium에서 데이터베이스 개체의 이름을 바꾸면 다른 데이터베이스 개체, 데이터 생성 계획, 단위 테스트, 그리고 해당 개체를 참조하는 스크립트에 대한 업데이트 작업이 시도됩니다. 데이터베이스 프로젝트에서 작업하는 동안 빌드 오류를 발생시키는 작업을 수행한 다음 해당 빌드 오류를 수정하는 다른 작업을 수행할 수 있습니다. 예를 들어 테이블을 삭제한 다음 해당 테이블을 기반으로 하는 뷰를 업데이트하여 삭제된 테이블에 대한 참조를 제거할 수 있습니다. 테이블을 삭제하고 뷰를 업데이트하는 사이에 프로젝트에 빌드 오류가 발생합니다.
프로젝트에 빌드 오류가 있는 상태에서 데이터베이스 개체의 이름을 바꾸는 경우에도 개체의 이름을 올바르게 바꿀 수 있습니다. 그러나 이름을 바꾸는 개체에 대한 모든 참조를 정확하게 업데이트할 수는 없습니다. 프로젝트에 빌드 오류가 있는 경우 변경 내용 미리 보기 대화 상자에 경고가 나타납니다. 계속 진행하는 경우 가능한 만큼 개체 이름이 바뀌고 참조가 업데이트됩니다. 작업을 취소하는 경우 먼저 빌드 오류를 수정한 다음 이름 바꾸기 작업을 다시 시도할 수 있습니다.
데이터 생성 계획에 미치는 영향
Visual Studio Premium 또는 Visual Studio Ultimate에서 데이터베이스 개체의 이름을 바꾸면 해당 개체를 참조하는 데이터 생성 계획에 대한 업데이트 작업이 시도됩니다. 그러나 다음 사항을 고려해야 합니다.
개체 이름을 바꾸려면 먼저 편집기에 열려 있는 모든 데이터 생성 계획을 저장해야 합니다. 개체 이름을 바꾸려고 할 때 열려 있는 데이터 생성 계획이 있으면 열려 있는 모든 데이터 생성 계획이 자동으로 저장되고 닫힌 후 이름 바꾸기 작업이 계속됩니다.
데이터 바인딩된 데이터 생성기를 사용하는 데이터 생성 계획을 수동으로 업데이트해야 합니다.
자세한 내용은 데이터 생성기를 사용하여 데이터베이스의 테스트 데이터 생성을 참조하십시오.
단위 테스트에 미치는 영향
단위 테스트의 Transact-SQL 문은 일반적으로 단위 테스트의 ValidationConnectionString과 ExecutionConnectionString에 지정된 데이터베이스의 개체를 참조합니다. 다음은 예외가 될 수 있는 두 가지 가능성입니다.
단위 테스트의 Transact-SQL 문은 다른 데이터베이스의 개체를 참조할 수 있습니다.
단위 테스트의 Transact-SQL 문은 동일한 데이터베이스에 있지만 다른 스키마에 있는 개체를 참조할 수 있습니다.
Visual Studio Premium에서 데이터베이스 개체의 이름을 바꾸면 솔루션에서 해당 개체를 참조하는 단위 테스트에 대한 업데이트 작업이 시도됩니다. 앞에서 언급한 경우에는 단위 테스트를 업데이트할 수 없습니다. 데이터베이스 개체의 이름을 바꿀 때 단위 테스트를 업데이트하려면 단위 테스트에서 정규화된 개체 이름을 사용해야 합니다. 단위 테스트에서 정규화된 이름을 사용하는 경우 스키마 개체의 이름을 바꿀 때마다 리팩터링 엔진이 단위 테스트를 업데이트할 수 있습니다.
단위 테스트에 대한 자세한 내용은 단위 테스트를 사용하여 데이터베이스 코드 확인을 참조하십시오.
Transact-SQL 스크립트에 미치는 영향
데이터베이스 프로젝트의 Transact-SQL 스크립트는 일반적으로 데이터베이스 프로젝트의 데이터베이스에 있는 스키마 개체를 참조합니다. 다음은 예외가 될 수 있는 두 가지 가능성입니다.
스크립트의 Transact-SQL 문은 다른 데이터베이스의 개체를 참조할 수 있습니다.
스크립트의 Transact-SQL 문은 동일한 데이터베이스에 있지만 다른 스키마에 있는 개체를 참조할 수 있습니다.
Visual Studio Premium에서 데이터베이스 개체의 이름을 바꾸면 솔루션에서 해당 개체를 참조하는 스크립트에 대한 업데이트 작업이 시도됩니다. 앞에서 언급한 경우에는 스크립트를 업데이트할 수 없습니다. 데이터베이스 개체 이름을 바꿀 때 스크립트를 업데이트하려면 스크립트에서 정규화된 개체 이름을 사용해야 합니다. 스크립트에서 정규화된 이름을 사용하는 경우 스키마 개체의 이름을 바꿀 때마다 리팩터링 엔진이 스크립트를 업데이트할 수 있습니다.
스크립트에 대한 자세한 내용은 데이터베이스 스크립트 만들기 및 수정을 참조하십시오.
보안
오류로 인해 리팩터링 작업이 완료되지 않으면 오류에 대한 정보가 응용 프로그램 이벤트 로그에 기록됩니다. 이 로그는 "일반 사용자" 권한이 있는 사용자가 볼 수 있습니다. 중요한 스키마 정보가 로그에 나타날 수 있는 경우 로그를 지우거나 클라이언트 컴퓨터에 대한 액세스를 제한할 수 있습니다.