逐步解說:建立及部署新版本控制的資料庫
更新:2007 年 11 月
在此逐步解說中,您會建立一個簡單的資料庫,其中包含兩個資料表和一個預存程序。這個程序要求您建立「資料庫專案」(Database Project)、建立該專案中的「資料庫物件」(Database Object),然後將您的變更建置及部署到資料庫伺服器。建立資料庫專案之後,可以讓您的資料庫「結構描述」(Schema) 受版本控制之下 (其方式是將此資料庫專案受版本控制)。
這個逐步解說的主要步驟如下:
建立資料庫專案。
建立資料庫資料表。
為這些資料表建立索引、索引鍵和條件約束。
建立預存程序。
設定資料庫專案屬性。
建置資料庫專案。
部署資料庫專案。
讓資料庫專案受版本控制。
必要條件
若要執行此逐步解說,您必須以有權在執行 Microsoft SQL Server 2000 的資料庫伺服器上建立資料庫的帳戶登入。
若要建立資料庫專案
在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。
[新增專案] 對話方塊隨即出現。
展開 [專案類型] 中的 [資料庫專案],然後按一下 [Microsoft SQL Server]。
按一下 [範本] 中的 [SQL Server 2000]。
在 [名稱] 中輸入 ProductsDB。
選取 [為方案建立目錄] 核取方塊。
接受 [位置]、[方案名稱] 和 [加入至原始檔控制] 的預設值,然後按一下 [確定]。
注意事項: 您可以在這個時候將您的方案加入到版本控制。在此逐步解說的最後一個程序中,您會將此方案加入到版本控制。
新的資料庫專案 ProductsDB 會出現在 [方案總管] 中。
指向 [檢視] 功能表上的 [其他視窗],然後按一下 [結構描述檢視]。
[結構描述檢視] 隨即出現 (如果尚未出現)。
接下來,您要將資料表加入到資料庫專案中。
若要將 Categories 資料表加入到資料庫專案
在 [結構描述檢視] 中,按一下 ProductsDB 底下的 [資料表] 節點。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 ProductsDB 專案,然後指向 [加入],再按一下 [資料表]。
按一下 [範本] 中的 [資料表]。
在 [名稱] 中,輸入 Categories 當做要提供給新資料表的名稱。
按一下 [加入],將此資料表加入至資料庫專案中。
[方案總管] 會顯示此資料表在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的資料表物件。即會出現 Transact-SQL (T-SQL) 編輯器,顯示新資料表的定義。
在 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]
按一下 [檔案] 功能表上的 [儲存 dbo.Categories.table.sql]。
展開 [結構描述檢視] 中的 [dbo.Categories] 節點。
展開 dbo.Categories 資料表中的 [資料行] 節點。
即會出現您在 T-SQL 編輯器中所定義的四個資料行。
接下來,您要將索引加入到 Categories 資料表中。
若要將索引加入到 Categories 資料表中
在 [結構描述檢視] 中,按一下 [dbo.Categories]。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Categories 資料表,然後指向 [加入],再按一下 [索引]。
按一下 [範本] 中的 [索引]。
在 [名稱] 中,輸入 CategoriesCategoryID 當做要提供給新索引的名稱。
按一下 [加入],即可將此索引加入到 Categories 資料表中。
[方案總管] 會顯示此索引在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的索引物件。即會出現 T-SQL 編輯器,並顯示新索引的定義。
注意事項: 在 [結構描述檢視] 中,此索引的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。
在 T-SQL 編輯器中,修改索引定義,使其符合下列範例:
-- ============================================= -- Create CategoriesCategoryID index -- ============================================= CREATE NONCLUSTERED INDEX [CategoriesCategoryID] ON [dbo].[Categories] ([CategoryID]) ON [PRIMARY]
按一下 [檔案] 功能表上的 [儲存 CategoriesCategoryID.index.sql]。
錯誤指示器會從圖示中消失,這表示此索引定義現在是有效的。
接下來,您要將主索引鍵加入 Categories 資料表。
若要將主索引鍵加入 Categories 資料表
在 [結構描述檢視] 中,按一下 [dbo.Categories]。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Categories 資料表,然後指向 [加入],再按一下 [主索引鍵]。
按一下 [範本] 中的 [主索引鍵]。
在 [名稱] 中,輸入 PK_Categories 當做要提供給新主索引鍵的名稱。
按一下 [加入],將主索引鍵加入 Categories 資料表。
[方案總管] 會顯示此主索引鍵在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的主索引鍵物件。即會出現 T-SQL 編輯器,並顯示新索引鍵的定義。
注意事項: 此主索引鍵的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。
在 T-SQL 編輯器中,修改主索引鍵定義,使其符合下列範例:
-- ============================================= -- Create PK_Categories primary key -- ============================================= ALTER TABLE [dbo].[Categories] ADD CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED ([CategoryID]) ON [PRIMARY]
按一下 [檔案] 功能表上的 [儲存 PK_Categories.pkey.sql]。
錯誤指示器會從圖示中消失,這表示此主索引鍵定義現在是有效的。
接下來,您要加入 Products 資料表。
若要加入 Products 資料表
按一下 [結構描述檢視] 中的 ProductsDB。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 ProductsDB 專案,然後指向 [加入],再按一下 [資料表]。
按一下 [範本] 中的 [資料表]。
在 [名稱] 中,輸入 Products 當做要提供給新資料表的名稱。
按一下 [加入],將此資料表加入至資料庫專案中。
[方案總管] 會顯示此資料表在資料庫專案中的新檔案。[結構描述檢視] 會顯示新的資料表物件。即會出現 T-SQL 編輯器,並顯示新資料表的定義。
在 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]
按一下 [檔案] 功能表上的 [儲存 dbo.Products.table.sql]。
展開 [結構描述檢視] 中的 [dbo.Products] 節點。
展開 dbo.Products 資料表中的 [資料行] 節點。
即會出現您在 T-SQL 編輯器中所定義的九個資料行。
接下來,您要將索引加入到 Products 資料表中。
若要將索引加入到 Products 資料表中
按一下 [結構描述檢視] 中的 [dbo.Products]。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [索引]。
按一下 [範本] 中的 [索引]。
在 [名稱] 中,輸入 ProductsCategoryID 當做要提供給新索引的名稱。
按一下 [加入],即可將此索引加入到 Products 資料表中。
[方案總管] 會顯示此新索引在資料庫專案中的檔案。[結構描述檢視] 會顯示新的索引物件。即會出現 T-SQL 編輯器,並顯示新索引的定義。
注意事項: 在 [結構描述檢視] 中,此索引的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。
在 T-SQL 編輯器中,修改索引定義,使其符合下列範例:
-- ============================================= -- Create ProductsCategoryID index -- ============================================= CREATE NONCLUSTERED INDEX [ProductsCategoryID] ON [dbo].[Products] ([CategoryID]) ON [PRIMARY]
按一下 [檔案] 功能表上的 [儲存 ProductsCategoryID.index.sql]。
錯誤指示器會從圖示中消失,這表示此索引定義現在是有效的。
接下來,您要將主索引鍵加入 Products 資料表。
若要將主索引鍵加入 Products 資料表
按一下 [結構描述檢視] 中的 [dbo.Products]。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [主索引鍵]。
按一下 [範本] 中的 [主索引鍵]。
在 [名稱] 中,輸入 PK_Products 當做要提供給新主索引鍵的名稱。
按一下 [加入],將主索引鍵加入 Products 資料表。
[方案總管] 會顯示新的主索引鍵在資料庫專案中的檔案。[結構描述檢視] 會顯示新的主索引鍵物件。即會出現 T-SQL 編輯器,並顯示新主索引鍵的定義。
注意事項: 此主索引鍵的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。
在 T-SQL 編輯器中,修改主索引鍵定義,使其符合下列範例:
-- ============================================= -- Create PK_Products primary key -- ============================================= ALTER TABLE [dbo].[Products] ADD CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED ([ProductID]) ON [PRIMARY]
按一下 [檔案] 功能表上的 [儲存 PK_Products.pkey.sql]。
錯誤指示器會從圖示中消失,這表示此主索引鍵定義現在是有效的。
接下來,您要將外部索引鍵加入 Products 資料表。
若要在 Products 資料表和 Categories 資料表之間加入外部索引鍵
按一下 [結構描述檢視] 中的 [dbo.Products]。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [外部索引鍵]。
按一下 [範本] 中的 [外部索引鍵]。
在 [名稱] 中,輸入 FK_ProductsCategories 當做要提供給新外部索引鍵的名稱。
按一下 [加入],將此外部索引鍵加入 Products 資料表。
[方案總管] 會顯示新的外部索引鍵在資料庫專案中的檔案。[結構描述檢視] 會顯示新的外部索引鍵物件。即會出現 T-SQL 編輯器,並顯示新外部索引鍵的定義。
注意事項: 此外部索引鍵的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。
在 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])
按一下 [檔案] 功能表上的 [儲存 FK_ProductsCategories.fkey.sql]。
錯誤指示器會從圖示中消失,這表示此外部索引鍵定義現在是有效的。
接下來,您要將檢查條件約束加入 Products 資料表。
若要將檢查條件約束加入 Products 資料表
按一下 [結構描述檢視] 中的 [dbo.Products]。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 dbo.Products 資料表,然後指向 [加入],再按一下 [檢查條件約束]。
按一下 [範本] 中的 [檢查條件約束]。
在 [名稱] 中,輸入 CK_ProductsUnitPrice 當做要提供給新檢查條件約束的名稱。
按一下 [加入],將此條件約束加入 Products 資料表。
[方案總管] 會顯示此新條件約束在資料庫專案中的檔案。[結構描述檢視] 會顯示新的條件約束物件。即會出現 T-SQL 編輯器,並顯示新條件約束的定義。
注意事項: 此條件約束的圖示會有包含白色 "x" 的紅色圓形,代表預設的定義包含錯誤。這是預期的行為,因為預設定義參考不存在的 "column_1" 資料行。
在 T-SQL 編輯器中,修改條件約束定義,使其符合下列範例:
-- ============================================= -- Create CK_ProductsUnitPrice check constraint -- ============================================= ALTER TABLE [dbo].[Products] WITH NOCHECK ADD CONSTRAINT [CK_Products_UnitPrice] CHECK (([UnitPrice] >= 0))
按一下 [檔案] 功能表上的 [儲存 CK_ProductsUnitPrice.chkconst.sql]。
錯誤指示器會從圖示中消失,這表示此條件約束定義現在是有效的。
接下來,您要將預存程序加入此專案中。
若要建立預存程序
按一下 [結構描述檢視] 中的 ProductsDB。
在 [專案] 功能表上,按一下 [加入新項目]。
[加入新項目] 對話方塊隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [結構描述檢視] 中的 ProductsDB 專案,然後指向 [加入],再按一下 [預存程序]。
按一下 [範本] 中的 [程序]。
在 [名稱] 中,輸入 Ten Most Expensive Products 當做要提供給新預存程序的名稱。
按一下 [加入],將此預存程序加入至資料庫專案中。
[方案總管] 會顯示新的預存程序在資料庫專案中的檔案。[結構描述檢視] 會顯示新的預存程序物件。即會出現 T-SQL 編輯器,顯示新預存程序的定義。
在 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
按一下 [檔案] 功能表上的 [儲存 dbo.Ten Most Expensive Products.proc.sql]。
展開 [結構描述檢視] 中的 [預存程序] 節點。
即會出現您在 T-SQL 編輯器中所定義的程序。
接下來,您要進行專案設定,然後才可以建置及部署專案。
若要進行專案建置設定
在 [方案總管] 中,按一下 ProductsDB (專案而不是方案)。
按一下 [專案] 功能表上的 [ProductsDB 屬性]。
專案屬性視窗隨即出現。
注意事項: 您也可以用滑鼠右鍵按一下 [方案總管] 中的 ProductsDB,然後按一下 [屬性]。
按一下 [建置] 索引標籤。
按一下 [編輯] 按鈕,指定目標連接。
指定您要將 ProductsDB 資料庫部署到其中之資料庫伺服器的連接資訊。
在 [選取或輸入資料庫名稱] 中,輸入 ProductsDB。
按一下 [確定]。
即會將此連接字串填入 [目標連接] 中。請注意,[目標資料庫名稱] 會設定為 ProductsDB。
接受其他選項的預設值。
按一下 [檔案] 功能表上的 [儲存選取項目]。
即會儲存您的專案建置設定。
接下來,您要建置資料庫專案。
若要建置資料庫專案
在 [建置] 功能表上,按一下 [建置方案]。
即會建置資料庫專案。如果成功的話,狀態列中會出現 [建置成功],而且 [輸出] 視窗中會顯示建置結果。
最後,您要部署資料庫專案。
若要將資料庫專案部署到資料庫伺服器
在 [方案總管] 中,按一下 ProductsDB (專案而不是方案)。
在 [建置] 功能表上,指向 [部署 ProjectName]。
即會使用您在建置組態中所指定的連接來部署資料庫專案。「部署成功」訊息會出現在 [輸出] 視窗與狀態列中。
若要將資料庫專案簽入版本控制
在 [方案總管] 中,按一下 ProductsDB (方案)。
指向 [檔案] 功能表上的 [原始檔控制],然後按一下 [將方案加入至原始檔控制]。
遵循版本控制軟體的指示,將方案、資料庫專案和它的內容加入到版本控制,並簽入所有的檔案。此資料庫專案代表資料庫結構描述的正本,而且受到版本控制。
後續步驟
您可以使用其他逐步解說來了解如何使用已部署的現有資料庫。