2009-05-22 55 views
3

在SQL Server ...存儲過程維護

我應該保持通過對象broswer在查詢分析器中的存儲過程,或作爲外部文本文件,爲什麼?

回答

4

...對源代碼控制中的文本文件的另一投票。

  • 一個巨大的好處是修訂歷史記錄。比較版本可以讓您深入瞭解問題,並節省您數小時的調試時間,特別是「我想知道他們爲什麼要這麼做」的多種調試方法。
  • 如果您有在你沒有別人看見一個數據庫實例的問題,您可以導出存儲過程中的問題,把它比作什麼在源頭控制,並確保你跨實例一致。
  • 這使得代碼部署到一個新的數據庫實例更易於控制。比如,你可以寫一個Ant任務審計數據庫模式,並有一個運行的程序,創建代碼,在這個過程中的一個步驟的任務。
  • 您可以查看過程源而無需連接到數據庫。這在恢復場景中可能特別有用。
  • 它強制執行的,而不是讓你的團隊在GUI工具一次性的新變化,順應腳本可用的紀律。 GUI工具改變了工作,但如果沒有在腳本中捕獲,它們將永遠丟失。
4

外部文本文件可以放在源代碼控制中,所以這是一個更好的解決方案。版本控制數據庫很困難,這是讓數據庫與依賴它的所有應用程序保持同步的一個重要步驟。

微軟的Visual Studio 2008的數據庫版做這事,允許比數據庫腳本,而且設施僅有版本控制部署在一個單一的步驟,單元測試,以及其他有趣的東西更多。

0

一旦你的系統變得足夠大,使用對象瀏覽器找到你的存儲過程是很痛苦的(和它不會做使他們非常排序的一個很好的工作)。雖然我經常喜歡使用對象瀏覽器,但我可能會建議其他人從外部文件開始,這樣您就可以從一開始就對它們進行源代碼控制。

0

有一個工具可以定期提取存儲過程的文本並將它們存儲在源代碼管理中。

這樣,你就擁有了兩全其美。您的文本文件存在並處於源代碼管理中,您可以保證它們儘可能地保持最新。如果有人在你不知情的情況下改變你的存儲過程(作爲一個我曾經傾向於做的老闆),你會很快以「最近的變化」的方式看到它。

0

要麼。

的源代碼控制外接文件提供一個很好的感覺,但數據庫對象不能被控制或鎖定或簽出像「正常」的源文件。但是,這是一個很好的紀律。

如果你有強大的生產控制,良好的流程和代碼差異的工具,然後在對象瀏覽器管理,對小規模的項目可行的,因爲你總是可以發現差異,很容易重新設置。

我希望你不要在生產對象瀏覽器的意思是......

1

很多可以依賴於SQL Server的版本,您正在使用,以及如何重要的是它回滾到以前版本的SQL 。

我發現,與SQL Server 2005+,它更容易維護他們在SQL Server Management Studio中,作爲其全部集成到.NET框架。

如果您定期備份數據庫,我認爲將備份存儲爲外部文件是浪費時間。

當然,我完全理解人們想使用類似SourseSafe作爲歷史備份額外的外部來源。