2008-09-17 82 views

回答

4

我有一種創建和更新Visual Studio 2005中的數據庫項目的方法,我認爲這是常識。在詢問了一些同事是否知道如何使用這種方法更新數據庫項目並收到否,我想我會在此發表博文,並傳遞一些有用的提示和最佳實踐。

我工作了很多數據庫,特別是構建用於業務邏輯/數據訪問.NET框架的存儲過程。我喜歡使用數據庫,並且始終創建數據庫項目以與我的.NET項目一起生活。我對保持數據庫項目是最新的精神病。在我年輕的時候,我被燒了太多時間,因爲我需要創建一個存儲過程,這個存儲過程被刪除或者與使用數據庫的應用程序不同步。

如Visual Studio 2005中創建數據庫項目後:

alt text http://www.cloudsocket.com/images/image-thumb16.png

創建項目3名新的目錄:表,存儲過程和函數。我通常只存儲這些用於我的項目。

alt text http://www.cloudsocket.com/images/image-thumb17.png

我現在打開Visual Studio中的服務器資源管理器,並創建我的期望數據庫的新連接。我以Northwind爲例。我不打算通過創建此示例的連接。

alt text http://www.cloudsocket.com/images/image-thumb18.png

我將使用存儲過程作爲我如何更新數據庫工程實例。首先,我展開Northwind數據庫的Server Explorer中的「Stored Procedures」目錄。我選擇一個存儲過程。

alt text http://www.cloudsocket.com/images/image-thumb19.png

我拖累了存儲過程在Solution Explorer中的「存儲過程」目錄,並刪除它。

alt text http://www.cloudsocket.com/images/image-thumb20.png

alt text http://www.cloudsocket.com/images/image-thumb21.png

如果你打開拖動的存儲過程的文件,你會發現,IDE創建爲接下來的腳本:

/****** Object: StoredProcedure [dbo].[CustOrdersOrders] Script Date: 08/25/2007 15:22:59 ******/ 
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CustOrdersOrders]') AND type in (N'P', N'PC')) 
DROP PROCEDURE [dbo].[CustOrdersOrders] 
GO 
/****** Object: StoredProcedure [dbo].[CustOrdersOrders] Script Date: 08/25/2007 15:22:59 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CustOrdersOrders]') AND type in (N'P', N'PC')) 
BEGIN 
EXEC dbo.sp_executesql @statement = N' 
CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5) 
AS 
SELECT OrderID, 
    OrderDate, 
    RequiredDate, 
    ShippedDate 
FROM Orders 
WHERE CustomerID = @CustomerID 
ORDER BY OrderID 
' 
END 
GO 

您現在可以將在所有表,函數和數據庫中剩餘的存儲過程。您還可以右鍵單擊解決方案資源管理器中的每個腳本,然後在數據庫項目的引用數據庫上運行腳本。

0

嘿克里斯,我也用同樣的方式來保存一個數據庫項目,唯一的問題是,你經常對存儲過程進行修改,有時候你忘記了你修改了哪些,所以你可以拖一個而忘記另一個。 您是否知道將數據庫項目與數據庫進行同步的方法,或者是在通過首次拖動添加項目後,爲項目中存儲的特效庫導入最新腳本的方法。

相關問題