방법: 이름 바꾸기 및 리팩터링을 사용하여 데이터베이스 개체 변경

Transact-SQL 편집기의 리팩터링 상황에 맞는 메뉴를 사용하여 개체의 이름을 바꾸거나 개체를 다른 스키마로 이동하고, 변경 내용을 커밋하기 전에 영향을 받는 모든 영역을 미리 볼 수 있습니다. 리팩터링 메뉴를 사용하여 데이터베이스 개체에 대한 모든 참조를 정규화하거나 데이터베이스 프로젝트의 SELECT 문에서 모든 와일드카드 문자를 확장할 수도 있습니다.

Warning

다음 절차에서는 프로젝트 지향 오프라인 데이터베이스 개발 섹션의 이전 절차에서 만든 엔터티를 사용합니다.

파일 이름 바꾸기

  1. 솔루션 탐색기에서 Products 테이블(Products.sql)을 마우스 오른쪽 단추로 클릭하고 코드 보기를 선택하여 Transact-SQL 편집기에서 스크립트를 엽니다.

  2. 스크립트의 [Products]를 마우스 오른쪽 단추로 클릭하고 리팩터링이름 바꾸기를 선택합니다.

  3. 새 이름 필드에서 PRODUCT로 변경합니다. 변경 내용 프리뷰 옵션을 검사로 놔두고 OK를 선택합니다.

  4. 다음 화면에서는 이 이름 바꾸기 작업의 영향을 받을 스크립트 목록을 프리뷰 할 수 있습니다. 특히 Products를 참조하는 모든 장소가 강조 표시됩니다. 이는 이전 절차의 모든 참조 찾기 작업과 매우 유사합니다. 위쪽 창에서 아무 것이나 클릭하고 아래쪽 창에서 스크립트의 실제 변경 내용(녹색으로 강조 표시됨)을 봅니다.

  5. 적용을 클릭합니다.

  6. 테이블 디자이너나 Transact-SQL 편집기에 이미 열려 있는 스크립트 파일의 경우 Transact-SQL 편집기에서 변경이 발생한 위치가 강조 표시되고 그 왼쪽에 녹색 막대가 표시됩니다.

  7. 솔루션 탐색기TradeDev.refactorlog가 추가되었습니다. 이 로그를 두 번 클릭하여 엽니다. 이 세션의 모든 변경 내용에 대한 XML 표현이 포함되어 있습니다.

  8. F5 키를 눌러 프로젝트를 빌드하고 로컬 데이터베이스에 배포합니다.

  9. SQL Server 개체 탐색기에서 로컬 아래 TradeDev 데이터베이스를 마우스 오른쪽 단추로 클릭하고 새로 고침을 선택합니다.

  10. 테이블을 확장하여 PRODUCT 테이블의 이름이 바뀌었는지 확인합니다.

  11. PRODUCT를 마우스 오른쪽 단추로 클릭하고 데이터 보기를 선택합니다. 기존 데이터가 이름 바꾸기 작업에 관계없이 그대로 유지되어 있는지 확인합니다.

Warning

리팩터링 로그가 삭제되면 리팩터링의 전체 기록이 삭제됩니다. 이전 리팩터링 작업이 적용되지 않은 데이터베이스에 프로젝트를 게시하면 리팩터링 파일이 삭제되기 전에 완료된 모든 리팩터링 작업이 삭제 및 만들기 작업으로 게시됩니다. 결과적으로 데이터 손실이 발생할 수 있습니다.

와일드카드 확장하기

  1. 솔루션 탐색기에서 함수 노드를 확장하고 GetProductsBySupplier.sql을 두 번 클릭합니다.

  2. 커서를 이 줄의 별표에 놓고 마우스 오른쪽 단추를 클릭합니다. 리팩터링을 선택하고 와일드카드 확장을 선택합니다.

    SELECT * from Product p  
    
  3. 변경 내용 프리뷰 대화 상자에서 위쪽 창의 SELECT * from Product p를 클릭하여 강조 표시합니다.

  4. 아래의 변경 내용 프리뷰 창에서 *가 스크립트에서 다음과 같이 확장된 것을 확인합니다.

    [Id], [Name], [ShelfLife], [SupplierId], [CustomerId]  
    
  5. 적용 단추를 클릭합니다. 확장 작업에서 가져온 변경 내용이 포함된 줄이 다시 왼쪽에 녹색 막대로 강조 표시됩니다.

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

  1. GetProductsBySupplier.sql이 여전히 Transact-SQL 편집기에 열려 있는지 확인합니다.

  2. 커서를 이 줄의 Product에 놓고 마우스 오른쪽 단추를 클릭합니다. 리팩터링을 선택하고, 정규화된 이름을 선택합니다.

    SELECT [Id], [Name], [ShelfLife], [SupplierId], [CustomerId] from Product p  
    
  3. 변경 내용 미리 보기 대화 상자에서 적용 단추를 클릭합니다. 모든 개체 참조가 업데이트되어 개체의 스키마 이름과 부모 이름(개체에 부모가 있는 경우)이 포함되었는지 확인합니다.

    SELECT [p].[Id], [p].[Name], [p].[ShelfLife], [p].[SupplierId], [p].[CustomerId] from [dbo].[Product] p  
    

스키마로 이동하기

  1. 이동할 개체를 마우스 오른쪽 단추로 클릭합니다. 리팩터링을 선택하고, 스키마 이동을 선택합니다.

  2. 새 스키마 목록에서 개체를 이동하려는 스키마의 이름을 선택합니다. 확인을 클릭합니다.

    변경 내용 프리뷰 확인란를 선택하면 변경 내용 프리뷰 대화 상자가 나타납니다. 그렇지 않으면 개체 이름이 업데이트되고 개체가 새 스키마로 이동됩니다.