다음을 통해 공유


연습: 데이터베이스 개체 수정

업데이트: 2007년 11월

이 연습에서는 T-SQL(Transact-SQL) 편집기를 사용하여 데이터베이스 프로젝트에서 여러 데이터베이스 개체의 정의를 수정합니다. 이 프로세스는 다음 단계로 구성됩니다.

  • 데이터베이스 프로젝트가 있는 솔루션을 엽니다.

  • 테이블에 열을 추가합니다. 고객이 제품 출시 연도를 추적하길 원합니다. 이 단계를 수행하기 위해 DateAdded 열을 Products 테이블에 추가합니다.

  • 고객 주문을 처리하는 납품자의 서비스 품질 등급을 고객이 평가하는 방법을 추적할 수 있도록 ShipperRating이라는 테이블을 추가합니다. 외래 키 관계 및 인덱스도 추가합니다.

사전 요구 사항

이 연습에서는 연습: 버전 제어에서 기존 데이터베이스 스키마 관리를 완료한 것으로 간주합니다. 그 연습의 결과로서 MyNorthwind라는 데이터베이스 프로젝트가 있는 솔루션을 갖게 됩니다.

MyNorthwind 솔루션을 열려면

  1. 파일 메뉴에서 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.

    프로젝트 열기 대화 상자가 나타납니다.

  2. MyNorthwind 폴더를 열고 MyNorthwind.sln을 두 번 클릭합니다.

    MyNorthwind 솔루션이 열리고 솔루션 탐색기에 나타납니다.

  3. 보기 메뉴에서 스키마 뷰를 클릭합니다.

    스키마 뷰가 아직 표시되지 않은 경우 표시됩니다. 데이터베이스 프로젝트에 정의되어 있는 모든 개체를 보여 줍니다.

  4. 스키마 뷰의 데이터베이스 프로젝트 노드를 아직 확장하지 않은 경우 확장합니다.

    다음에는 테이블 정의를 수정하여 열을 테이블에 추가합니다.

Products 테이블에 DateAdded 열을 추가하려면

  1. 스키마 뷰에서 Products 테이블을 마우스 오른쪽 단추로 클릭하고 열기를 클릭합니다. Products 테이블을 두 번 클릭할 수도 있습니다.

    T-SQL 편집기가 열리고 Products 테이블에 대한 정의가 표시됩니다.

  2. 다음 예제에 표시된 대로 T-SQL 편집기에서 정의를 수정하여 DateAdded 열을 추가합니다.

    CREATE TABLE [dbo].[Products]
    (
    [ProductID] [int] NOT NULL IDENTITY(1, 1),
    [ProductName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
    [SupplierID] [int] NULL,
    [CategoryID] [int] NULL,
    [QuantityPerUnit] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
    [UnitPrice] [money] NULL CONSTRAINT [DF_Products_UnitPrice] DEFAULT (0),
    [UnitsInStock] [smallint] NULL CONSTRAINT [DF_Products_UnitsInStock] DEFAULT (0),
    [UnitsOnOrder] [smallint] NULL CONSTRAINT [DF_Products_UnitsOnOrder] DEFAULT (0),
    [ReorderLevel] [smallint] NULL CONSTRAINT [DF_Products_ReorderLevel] DEFAULT (0),
    [Discontinued] [bit] NOT NULL CONSTRAINT [DF_Products_Discontinued] DEFAULT (0),
    [DateAdded] [datetime] NULL
    ) ON [PRIMARY]
    
  3. 파일 메뉴에서 dbo.Products 저장을 클릭하여 변경 내용을 저장합니다.

    기본적으로 파일은 소스 제어에서 자동으로 체크 아웃됩니다. 소스 제어 설정을 수정한 경우 파일을 체크 아웃하라는 메시지가 나타납니다.

    다음에는 ShipperRating이라는 테이블을 데이터베이스 프로젝트에 추가합니다.

ShipperRating 테이블을 추가하려면

  1. 스키마 뷰에서 테이블 폴더를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다. 테이블 폴더를 마우스 오른쪽 단추를 클릭하여 추가를 가리킨 다음 테이블을 클릭할 수도 있습니다.

    새 항목 추가 대화 상자가 나타납니다.

  3. 템플릿 목록에서 테이블을 클릭합니다.

  4. 이름에서 ShipperRating을 입력한 다음 추가를 클릭합니다.

    ShipperRating 테이블이 데이터베이스 프로젝트와 소스 제어에 추가됩니다. 이 테이블에 대한 정의를 편집할 수 있도록 T-SQL 편집기가 나타납니다.

  5. T-SQL 편집기에서 다음 예제와 일치하도록 테이블 정의를 수정합니다.

    -- =============================================
    -- Create table definition for ShipperRating 
    --Contains a rating of a shipper by
    --a customer, on a particular date.
    --Ratings are from 1-100.
    -- =============================================
    CREATE TABLE [dbo].[ShipperRating]
    (
    [ShipperID] [int] NOT NULL,
    [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
    [RatingDate] [datetime] NULL,
    [Rating] [int] NOT NULL
    ) ON [PRIMARY]
    
  6. 파일 메뉴에서 dbo.ShipperRating 저장을 클릭하여 변경 내용을 저장합니다.

    다음에는 외래 키를 ShipperRating 테이블에 추가합니다.

ShipperRating 테이블에 외래 키를 추가하려면

  1. 스키마 뷰에서 ShipperRating 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 외래 키를 클릭합니다.

    외래 키 템플릿이 이미 강조 표시된 상태로 새 항목 추가 대화 상자가 나타납니다.

  2. 이름에 FK_ShipperRating_Shippers를 입력한 다음 추가를 클릭합니다.

    FK_ShipperRating_Shippers 외래 키가 프로젝트의 ShipperRating 테이블에 추가됩니다. 외래 키에 대한 정의를 편집할 수 있도록 T-SQL 편집기가 나타납니다.

    참고:

    외래 키에 대한 기본 정의에서는 실제 테이블과 열 대신 tablename의 column_1을 참조합니다. 따라서 스키마 뷰에서 FK_ShipperRating_Shippers의 아이콘에 오류 아이콘(흰색 "x"가 포함된 빨간색 원)이 표시됩니다. 또한 잘못된 데이터베이스 개체 정의가 있음을 나타내기 위해 오류 목록 창에 오류가 나타납니다. 이는 정상적인 동작입니다. 개체 정의가 있는 솔루션 탐색기의 파일은 오류 아이콘을 표시하지 않습니다.

  3. T-SQL 편집기에서 다음 예제와 일치하도록 외래 키 정의를 수정합니다.

    ALTER TABLE [dbo].[ShipperRating]
    ADD CONSTRAINT [FK_ShipperRating_Shippers] 
    FOREIGN KEY ([ShipperID])
    REFERENCES [dbo].[Shippers] ([ShipperID])
    
  4. 파일 메뉴에서 dbo.FK_ShipperRating_Shippers 저장을 클릭하여 변경 내용을 저장합니다. 이제 정의가 유효하므로 오류 아이콘이 외래 키 제약 조건의 정규 아이콘으로 바뀝니다.

    마지막 단계에서 인덱스를 ShipperRating 테이블에 추가합니다.

ShipperRating 테이블에 인덱스를 추가하려면

  1. 스키마 뷰에서 인덱스 폴더를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다. 인덱스 폴더를 마우스 오른쪽 단추를 클릭하여 추가를 가리킨 다음 인덱스를 클릭할 수도 있습니다.

  3. 템플릿 목록에서 인덱스가 아직 강조 표시되지 않은 경우 클릭합니다.

  4. 이름에서 ShipperRatingDate를 입력한 다음 추가를 클릭합니다.

    ShipperRatingDate 인덱스가 프로젝트의 ShipperRating 테이블에 추가됩니다. 인덱스에 대한 정의를 편집할 수 있도록 T-SQL 편집기가 나타납니다.

    참고:

    인덱스에 대한 기본 정의에서는 실제 열 이름 대신 column_1을 참조합니다. 따라서 솔루션 탐색기에서 ShipperRatingDate에 대한 아이콘은 오류 아이콘(빨간색 원에 흰색 "x"가 있음)을 표시합니다. 또한 잘못된 데이터베이스 개체 정의가 있음을 나타내기 위해 오류 목록 창에 오류가 나타납니다. 이는 정상적인 동작입니다.

  5. T-SQL 편집기에서 다음 예제와 일치하도록 인덱스 정의를 수정합니다.

    -- =============================================
    -- Create index on RatingDate column in 
    --the ShipperRating table.
    -- =============================================
    CREATE INDEX [ShipperRatingDate]
    ON [dbo].[ShipperRating]
    (RatingDate)
    

    파일 메뉴에서 ShipperRatingDate 저장을 클릭하여 변경 내용을 저장합니다. 이제 정의가 유효하기 때문에 인덱스에 대한 정규 아이콘으로 오류 아이콘이 바뀝니다.

변경 내용을 버전 제어에 체크 인하려면

  1. 솔루션 탐색기에서 MyNorthwind 데이터베이스를 클릭합니다.

  2. 파일 메뉴에서 소스 제어를 가리킨 다음 체크 인을 클릭합니다.

  3. 소스 제어 플러그 인에 대한 절차에 따라 파일을 체크 인합니다. 자세한 내용은 Team Foundation 버전 제어 사용을 참조하십시오.

    데이터베이스 프로젝트 변경 내용이 이제 체크 인되었으므로 다른 팀 멤버가 사용할 수 있습니다.

다음 단계

이 데이터베이스에 대한 오프라인 표현을 수정한 후에 데이터베이스 서버에 해당 변경 내용을 빌드하고 배포해야 합니다. 변경 내용을 빌드하고 배포하려면 연습: 기존 버전 제어 데이터베이스로 변경 내용 배포를 참조하십시오.

참고 항목

작업

연습: 버전 제어에서 기존 데이터베이스 스키마 관리

연습: 새 버전 제어 데이터베이스 만들기 및 배포

개념

데이터베이스 개체 작업 개요

Database Edition의 용어 개요

기타 리소스

데이터베이스 스키마 빌드 및 배포