回答

1

到版本控制存儲過程,最好的辦法是使安裝存儲過程SQL腳本,也許形式

if object_id ('FooSproc') is not null 
    drop procedure FooSproc 
go 

Create procedure FooSproc 
[ . . . ] 
go 

的把腳本源控制。

版本和釋放的存儲過程的代碼

較大的身體可能還需要理清編譯多個腳本到存儲過程爲一個安裝程序的一種手段。實際上工作得很好的一種快速和骯髒的方式是使用C預處理器和文件以及一堆#include語句。 C預處理器附帶Visual Studio或免費SDK,您可以從Microsoft網站下載。

-- ========================================================================= 
-- === Installer file for FooApp sprocs ==================================== 
-- ========================================================================= 
-- 
--   THIS IS GENERATED CODE. EDITS WILL BE OVERWRITTEN. 
-- 
-- ========================================================================= 
-- 
#include "Foo.sql" 

#include "Bar.sql" 

#include "Wibble.sql" 

帶着幾分腳本,你可以做一個發佈經理,可以讓你檢查出所有的存儲過程,爲您的應用程序的特定版本並安裝該版本到數據庫中。當然,不要忘記更新包含文件,否則安裝程序將錯過任何未包含的內容。

爲了使用C預處理器,您需要設置您的環境。 Visual Studio中附帶了一個批處理文件來做到這一點,通常會落得什麼地方安裝,如:

C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat 

你需要運行該批處理文件來設置環境,然後你可以運行一個咒語C預處理器如:

cl /EP DB\DB.inc > Build\DB\DB.sql 

這將讀取包含文件,包括它引用的所有文件,然後寫入標準輸出;你可以將stdout重定向到任何你喜歡的地方。請注意,C預處理器是遞歸的,您可以包含其他包含文件。

+0

好吧我有我的sql腳本在我面前,我現在要做什麼來將它添加到源代碼管理? – Rod 2010-05-13 12:11:36

+0

我認爲我的問題在於我的SSMS可能是一個快速版本,因爲我沒有看到解決方案資源管理器 – Rod 2010-05-13 12:14:30

+0

SQL Server dev ed。相當便宜(<50美元)。這將爲您提供支持源代碼管理的SSMS版本。此外,如果您擁有合法的SQL Server許可,安裝CD或映像將具有支持源代碼管理的SSMS版本。 – ConcernedOfTunbridgeWells 2010-05-13 13:46:58