逐步解說:建立及部署新版本控制的資料庫

更新:2007 年 11 月

在此逐步解說中,您會建立一個簡單的資料庫,其中包含兩個資料表和一個預存程序。這個程序要求您建立「資料庫專案」(Database Project)、建立該專案中的「資料庫物件」(Database Object),然後將您的變更建置及部署到資料庫伺服器。建立資料庫專案之後,可以讓您的資料庫「結構描述」(Schema) 受版本控制之下 (其方式是將此資料庫專案受版本控制)。

這個逐步解說的主要步驟如下:

  • 建立資料庫專案。

  • 建立資料庫資料表。

  • 為這些資料表建立索引、索引鍵和條件約束。

  • 建立預存程序。

  • 設定資料庫專案屬性。

  • 建置資料庫專案。

  • 部署資料庫專案。

  • 讓資料庫專案受版本控制。

必要條件

若要執行此逐步解說,您必須以有權在執行 Microsoft SQL Server 2000 的資料庫伺服器上建立資料庫的帳戶登入。

若要建立資料庫專案

  1. 在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。

    [新增專案] 對話方塊隨即出現。

  2. 展開 [專案類型] 中的 [資料庫專案],然後按一下 [Microsoft SQL Server]。

  3. 按一下 [範本] 中的 [SQL Server 2000]。

  4. 在 [名稱] 中輸入 ProductsDB。

  5. 選取 [為方案建立目錄] 核取方塊。

  6. 接受 [位置]、[方案名稱] 和 [加入至原始檔控制] 的預設值,然後按一下 [確定]。

    注意事項:

    您可以在這個時候將您的方案加入到版本控制。在此逐步解說的最後一個程序中,您會將此方案加入到版本控制。

    新的資料庫專案 ProductsDB 會出現在 [方案總管] 中。

  7. 指向 [檢視] 功能表上的 [其他視窗],然後按一下 [結構描述檢視]。

    [結構描述檢視] 隨即出現 (如果尚未出現)。

    接下來,您要將資料表加入到資料庫專案中。

若要將 Categories 資料表加入到資料庫專案

  1. 在 [結構描述檢視] 中,按一下 ProductsDB 底下的 [資料表] 節點。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 ProductsDB 專案,然後指向 [加入],再按一下 [資料表]。

  3. 按一下 [範本] 中的 [資料表]。

  4. 在 [名稱] 中,輸入 Categories 當做要提供給新資料表的名稱。

  5. 按一下 [加入],將此資料表加入至資料庫專案中。

    [方案總管] 會顯示此資料表在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的資料表物件。即會出現 Transact-SQL (T-SQL) 編輯器,顯示新資料表的定義。

  6. 在 T-SQL 編輯器中,修改資料表定義,使其符合下列範例:

    -- =============================================
    -- Create Categories table
    -- =============================================
    CREATE TABLE [dbo].[Categories]
    (
    [CategoryID] [int] NOT NULL IDENTITY(1, 1),
    [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    [Picture] [image] NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
  7. 按一下 [檔案] 功能表上的 [儲存 dbo.Categories.table.sql]。

  8. 展開 [結構描述檢視] 中的 [dbo.Categories] 節點。

  9. 展開 dbo.Categories 資料表中的 [資料行] 節點。

    即會出現您在 T-SQL 編輯器中所定義的四個資料行。

    接下來,您要將索引加入到 Categories 資料表中。

若要將索引加入到 Categories 資料表中

  1. 在 [結構描述檢視] 中,按一下 [dbo.Categories]。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Categories 資料表,然後指向 [加入],再按一下 [索引]。

  3. 按一下 [範本] 中的 [索引]。

  4. 在 [名稱] 中,輸入 CategoriesCategoryID 當做要提供給新索引的名稱。

  5. 按一下 [加入],即可將此索引加入到 Categories 資料表中。

    [方案總管] 會顯示此索引在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的索引物件。即會出現 T-SQL 編輯器,並顯示新索引的定義。

    注意事項:

    在 [結構描述檢視] 中,此索引的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。

  6. 在 T-SQL 編輯器中,修改索引定義,使其符合下列範例:

    -- =============================================
    -- Create CategoriesCategoryID index 
    -- =============================================
    CREATE NONCLUSTERED INDEX [CategoriesCategoryID] 
    ON [dbo].[Categories] ([CategoryID]) 
    ON [PRIMARY]
    
  7. 按一下 [檔案] 功能表上的 [儲存 CategoriesCategoryID.index.sql]。

    錯誤指示器會從圖示中消失,這表示此索引定義現在是有效的。

    接下來,您要將主索引鍵加入 Categories 資料表。

若要將主索引鍵加入 Categories 資料表

  1. 在 [結構描述檢視] 中,按一下 [dbo.Categories]。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Categories 資料表,然後指向 [加入],再按一下 [主索引鍵]。

  3. 按一下 [範本] 中的 [主索引鍵]。

  4. 在 [名稱] 中,輸入 PK_Categories 當做要提供給新主索引鍵的名稱。

  5. 按一下 [加入],將主索引鍵加入 Categories 資料表。

    [方案總管] 會顯示此主索引鍵在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的主索引鍵物件。即會出現 T-SQL 編輯器,並顯示新索引鍵的定義。

    注意事項:

    此主索引鍵的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。

  6. 在 T-SQL 編輯器中,修改主索引鍵定義,使其符合下列範例:

    -- =============================================
    -- Create PK_Categories primary key 
    -- =============================================
    ALTER TABLE [dbo].[Categories] 
    ADD CONSTRAINT [PK_Categories] 
    PRIMARY KEY CLUSTERED  ([CategoryID]) 
    ON [PRIMARY]
    
  7. 按一下 [檔案] 功能表上的 [儲存 PK_Categories.pkey.sql]。

    錯誤指示器會從圖示中消失,這表示此主索引鍵定義現在是有效的。

    接下來,您要加入 Products 資料表。

若要加入 Products 資料表

  1. 按一下 [結構描述檢視] 中的 ProductsDB。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 ProductsDB 專案,然後指向 [加入],再按一下 [資料表]。

  3. 按一下 [範本] 中的 [資料表]。

  4. 在 [名稱] 中,輸入 Products 當做要提供給新資料表的名稱。

  5. 按一下 [加入],將此資料表加入至資料庫專案中。

    [方案總管] 會顯示此資料表在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的資料表物件。即會出現 T-SQL 編輯器,並顯示新資料表的定義。

  6. 在 T-SQL 編輯器中,修改資料表定義,使其符合下列範例:

    -- =============================================
    -- Create Products table
    -- =============================================
    CREATE TABLE [dbo].[Products]
    (
    [ProductID] [int] NOT NULL IDENTITY(1, 1),
    [ProductName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [CategoryID] [int] NULL,
    [QuantityPerUnit] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_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)
    ) ON [PRIMARY]
    
  7. 按一下 [檔案] 功能表上的 [儲存 dbo.Products.table.sql]。

  8. 展開 [結構描述檢視] 中的 [dbo.Products] 節點。

  9. 展開 dbo.Products 資料表中的 [資料行] 節點。

    即會出現您在 T-SQL 編輯器中所定義的九個資料行。

    接下來,您要將索引加入到 Products 資料表中。

若要將索引加入到 Products 資料表中

  1. 按一下 [結構描述檢視] 中的 [dbo.Products]。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [索引]。

  3. 按一下 [範本] 中的 [索引]。

  4. 在 [名稱] 中,輸入 ProductsCategoryID 當做要提供給新索引的名稱。

  5. 按一下 [加入],即可將此索引加入到 Products 資料表中。

    [方案總管] 會顯示此新索引在資料庫專案中的檔案。[結構描述檢視] 會顯示新的索引物件。即會出現 T-SQL 編輯器,並顯示新索引的定義。

    注意事項:

    在 [結構描述檢視] 中,此索引的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。

  6. 在 T-SQL 編輯器中,修改索引定義,使其符合下列範例:

    -- =============================================
    -- Create ProductsCategoryID index
    -- =============================================
    CREATE NONCLUSTERED INDEX [ProductsCategoryID] 
    ON [dbo].[Products] ([CategoryID]) 
    ON [PRIMARY]
    
  7. 按一下 [檔案] 功能表上的 [儲存 ProductsCategoryID.index.sql]。

    錯誤指示器會從圖示中消失,這表示此索引定義現在是有效的。

    接下來,您要將主索引鍵加入 Products 資料表。

若要將主索引鍵加入 Products 資料表

  1. 按一下 [結構描述檢視] 中的 [dbo.Products]。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [主索引鍵]。

  3. 按一下 [範本] 中的 [主索引鍵]。

  4. 在 [名稱] 中,輸入 PK_Products 當做要提供給新主索引鍵的名稱。

  5. 按一下 [加入],將主索引鍵加入 Products 資料表。

    [方案總管] 會顯示新的主索引鍵在資料庫專案中的檔案。[結構描述檢視] 會顯示新的主索引鍵物件。即會出現 T-SQL 編輯器,並顯示新主索引鍵的定義。

    注意事項:

    此主索引鍵的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。

  6. 在 T-SQL 編輯器中,修改主索引鍵定義,使其符合下列範例:

    -- =============================================
    -- Create PK_Products primary key 
    -- =============================================
    ALTER TABLE [dbo].[Products] 
    ADD CONSTRAINT [PK_Products] 
    PRIMARY KEY CLUSTERED  ([ProductID]) 
    ON [PRIMARY]
    
  7. 按一下 [檔案] 功能表上的 [儲存 PK_Products.pkey.sql]。

    錯誤指示器會從圖示中消失,這表示此主索引鍵定義現在是有效的。

    接下來,您要將外部索引鍵加入 Products 資料表。

若要在 Products 資料表和 Categories 資料表之間加入外部索引鍵

  1. 按一下 [結構描述檢視] 中的 [dbo.Products]。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [外部索引鍵]。

  3. 按一下 [範本] 中的 [外部索引鍵]。

  4. 在 [名稱] 中,輸入 FK_ProductsCategories 當做要提供給新外部索引鍵的名稱。

  5. 按一下 [加入],將此外部索引鍵加入 Products 資料表。

    [方案總管] 會顯示新的外部索引鍵在資料庫專案中的檔案。[結構描述檢視] 會顯示新的外部索引鍵物件。即會出現 T-SQL 編輯器,並顯示新外部索引鍵的定義。

    注意事項:

    此外部索引鍵的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。

  6. 在 T-SQL 編輯器中,修改外部索引鍵定義,使其符合下列範例:

    -- =============================================
    -- Create FK_Products_Categories foreign key
    -- =============================================
    ALTER TABLE [dbo].[Products] WITH NOCHECK
    ADD CONSTRAINT [FK_Products_Categories] FOREIGN KEY ([CategoryID])
    REFERENCES [dbo].[Categories] ([CategoryID])
    
  7. 按一下 [檔案] 功能表上的 [儲存 FK_ProductsCategories.fkey.sql]。

    錯誤指示器會從圖示中消失,這表示此外部索引鍵定義現在是有效的。

    接下來,您要將檢查條件約束加入 Products 資料表。

若要將檢查條件約束加入 Products 資料表

  1. 按一下 [結構描述檢視] 中的 [dbo.Products]。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [檢查條件約束]。

  3. 按一下 [範本] 中的 [檢查條件約束]。

  4. 在 [名稱] 中,輸入 CK_ProductsUnitPrice 當做要提供給新檢查條件約束的名稱。

  5. 按一下 [加入],將此條件約束加入 Products 資料表。

    [方案總管] 會顯示此新條件約束在資料庫專案中的檔案。[結構描述檢視] 會顯示新的條件約束物件。即會出現 T-SQL 編輯器,並顯示新條件約束的定義。

    注意事項:

    此條件約束的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。

  6. 在 T-SQL 編輯器中,修改條件約束定義,使其符合下列範例:

    -- =============================================
    -- Create CK_ProductsUnitPrice check constraint
    -- =============================================
    ALTER TABLE [dbo].[Products] WITH NOCHECK 
    ADD CONSTRAINT [CK_Products_UnitPrice] 
    CHECK (([UnitPrice] >= 0))
    
  7. 按一下 [檔案] 功能表上的 [儲存 CK_ProductsUnitPrice.chkconst.sql]。

    錯誤指示器會從圖示中消失,這表示此條件約束定義現在是有效的。

    接下來,您要將預存程序加入此專案中。

若要建立預存程序

  1. 按一下 [結構描述檢視] 中的 ProductsDB。

  2. 在 [專案] 功能表上,按一下 [加入新項目]。

    [加入新項目] 對話方塊隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 ProductsDB 專案,然後指向 [加入],再按一下 [預存程序]。

  3. 按一下 [範本] 中的 [程序]。

  4. 在 [名稱] 中,輸入 Ten Most Expensive Products 當做要提供給新預存程序的名稱。

  5. 按一下 [加入],將此預存程序加入至資料庫專案中。

    [方案總管] 會顯示新的預存程序在資料庫專案中的檔案。[結構描述檢視] 會顯示新的預存程序物件。即會出現 T-SQL 編輯器,顯示新預存程序的定義。

  6. 在 T-SQL 編輯器中,修改預存程序定義,使其符合下列範例:

    -- =============================================
    -- Create Ten Most Expensive Products
    --   stored procedure
    -- =============================================
    CREATE PROCEDURE [dbo].[Ten Most Expensive Products]
    AS
    SET ROWCOUNT 10
    SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
    FROM Products
    ORDER BY Products.UnitPrice DESC
    RETURN 0
    
  7. 按一下 [檔案] 功能表上的 [儲存 dbo.Ten Most Expensive Products.proc.sql]。

  8. 展開 [結構描述檢視] 中的 [預存程序] 節點。

    即會出現您在 T-SQL 編輯器中所定義的程序。

    接下來,您要進行專案設定,然後才可以建置及部署專案。

若要進行專案建置設定

  1. 在 [方案總管] 中,按一下 ProductsDB (專案而不是方案)。

  2. 按一下 [專案] 功能表上的 [ProductsDB 屬性]。

    專案屬性視窗隨即出現。

    注意事項:

    您也可以用滑鼠右鍵按一下 [方案總管] 中的 ProductsDB,然後按一下 [屬性]。

  3. 按一下 [建置] 索引標籤。

  4. 按一下 [編輯] 按鈕,指定目標連接。

  5. 指定您要將 ProductsDB 資料庫部署到其中之資料庫伺服器的連接資訊。

  6. 在 [選取或輸入資料庫名稱] 中,輸入 ProductsDB。

  7. 按一下 [確定]。

    即會將此連接字串填入 [目標連接] 中。請注意,[目標資料庫名稱] 會設定為 ProductsDB。

  8. 接受其他選項的預設值。

  9. 按一下 [檔案] 功能表上的 [儲存選取項目]。

    即會儲存您的專案建置設定。

    接下來,您要建置資料庫專案。

若要建置資料庫專案

  • 在 [建置] 功能表上,按一下 [建置方案]。

    即會建置資料庫專案。如果成功的話,狀態列中會出現 [建置成功],而且 [輸出] 視窗中會顯示建置結果。

    最後,您要部署資料庫專案。

若要將資料庫專案部署到資料庫伺服器

  1. 在 [方案總管] 中,按一下 ProductsDB (專案而不是方案)。

  2. 在 [建置] 功能表上,指向 [部署 ProjectName]。

    即會使用您在建置組態中所指定的連接來部署資料庫專案。「部署成功」訊息會出現在 [輸出] 視窗與狀態列中。

若要將資料庫專案簽入版本控制

  1. 在 [方案總管] 中,按一下 ProductsDB (方案)。

  2. 指向 [檔案] 功能表上的 [原始檔控制],然後按一下 [將方案加入至原始檔控制]。

    遵循版本控制軟體的指示,將方案、資料庫專案和它的內容加入到版本控制,並簽入所有的檔案。此資料庫專案代表資料庫結構描述的正本,而且受到版本控制。

後續步驟

您可以使用其他逐步解說來了解如何使用已部署的現有資料庫。

請參閱

工作

逐步解說:將現有資料庫結構描述放入版本控制下

逐步解說:修改資料庫物件

逐步解說:將變更部署到現有的版本控制資料庫

概念

Database Edition 的用語概觀

其他資源

建置和部署資料庫結構描述

資料庫專案入門