2010-11-25 99 views
8

我一直在使用SQL Server幾年。我聽說過SMO,但我對此一無所知。使用它有什麼好處?我應該學習並開始在我的SQL Server項目(主要是數據倉庫開發)中使用SMO嗎?爲什麼?SQL Server:爲什麼要使用SMO?

回答

5

這取決於你想要做什麼。 SMO是SQL Server管理對象。它是一組用於以編程方式管理SQL Server的庫。例如,如果您正在嘗試構建SQL Maangement Studio的克隆,那麼您可能希望查看SMO。或者,如果您試圖以編程方式管理數據庫的結構,那麼這就是您需要查看的地方。

否則,我不打擾。

+5

除此之外還有更多的用例,例如,以編程方式爲數據庫對象提取DDL。 – RedFilter 2010-11-25 20:23:42

6

從微軟:

Overview (SMO)

SQL Server管理對象(SMO) 是專爲編程 管理的Microsoft SQL Server的對象。 您可以使用SMO構建自定義的 SQL Server管理應用程序。 儘管SQL Server Management Studio 是用於管理SQL Server的功能強大且廣泛的 應用程序,但是有時候您可能會更好地爲SMO應用程序提供 服務。

例如,控制SQL Server管理 任務的用戶應用程序 可能要簡化爲 滿足用戶新的需求,並 降低培訓成本。您可能需要 來創建自定義的SQL Server 數據庫,或創建應用程序 以創建和監視索引的效率。 SMO 應用程序也可以用於將包括第三方硬件或 的軟件無縫地插入到數據庫 管理應用程序中。

SMO對象模型擴展, 取代分佈式管理對象(SQL-DMO)對象模型。 與SQL-DMO相比,SMO增加了性能,控制和易用性。 SMO中包含大多數SQL-DMO功能 ,並且支持 SQL Server中的新功能的各種新的 類。該對象模型是直觀的,並使用SQL-DMO 術語,在這裏有可能幫助轉移你的技能。

你可以在這裏下載SMO:

Microsoft® SQL Server® 2008 R2 Feature Pack

而對於入門編程:

Creating SMO Programs

+0

謝謝,我需要什麼來開始使用SMO?我需要完整的Visual Studio 2008還是SMO包含在SQL Server 2008 EE中? – juur 2010-11-25 19:15:58

+0

@juur:查看我的更新 – RedFilter 2010-11-25 20:11:01

3

我已經使用SMO自動腳本化目標代碼和用戶權限並添加到版本控制。

通過這樣做,我可以爲我的審計團隊或我自己的研究或克隆服務器保存特權或對象DDL。

我也使用它,所以我可以快速比較特定日期的對象代碼而不需要快照/備份。

最近,我在災難恢復項目中使用了SMO來腳本化所有服務器權限和系統數據庫對象權限,並在替換服務器上運行腳本。

相關問題