目錄
SMO 基礎知識
列舉服務器
連接到服務器
列舉數據庫
發出 DDL 或 DML 命令
遍歷對象列表
備份數據庫
恢復數據庫
驗證數據庫備份
結束語
數據庫開發人員不僅必須查詢和處理數據,還必須定期執行管理任務。SQL Server™ 管理對象 (SMO) 為開發人員提供了強大的工具集,用於備份和恢復數據庫,以及發出數據定義語言 (DDL) 命令等操作。通過使用 SQL SMO,您還可以連接到 SQL Server,遍歷數據庫對象的集合,並對其執行各種任務。
在本期專欄中,我將介紹如何使用 SMO 來檢查數據庫對象並執行各種管理任務。具體而言,我將介紹如何設計您的項目以使用 SMO 以及如何連接到服務器等主題。我還將介紹一個對數據庫發出 DDL 或數據操作語言 (DML) 命令的示例應用程序。最後,我將演示如何使用 SMO 來執行數據庫備份、恢復和備份驗證。
SMO 基礎知識
SMO 是一種 Microsoft® .NET Framework 對象庫,可讓您管理一個或多個數據庫服務器。其目的在於使用 SQL Server 2005 引入的新功能,但它還將連接到支持各自舊版功能的 SQL Server 2000 數據庫。但是,部分 SMO 的類、屬性和方法只能與 SQL Server 2005 配合使用才能支持諸如 SQL Service Broker 和快照隔離之類的新功能。
雖然基於 COM 的 SQL 分布式管理對象 (SQL-DMO) 仍附帶有 SQL Server 2005,但是它未經更新,不能像 SMO 一樣可直接訪問最新的 SQL Server 2005 功能。設計管理 SQL Server 數據庫的 .NET 應用程序時,建議您優先選擇 SQL SMO,而不推薦使用具有 DMO 的 COM interop。您還應當考慮升級目前使用 DMO 的應用程序,以轉而使用 SMO。
您可在安裝 Microsoft® SQL Server 2005 時勾選“安裝客戶端工具”選項來安裝 SMO。然後在創建即將使用 SMO 的項目時,應首先引用適當的程序集。您必須引用的兩個主要 DLL 是 Microsoft.SqlServer.Smo.dll 和 Microsoft.SqlServer.ConnectionInfo.dll。前者包含核心 SMO 類(如數據庫、服務器、備份和恢復),而後者包含有助於管理與 SQL Server 對象之間的連接的類庫。在許多情況下,您還需要引用 Microsoft.SqlServer.SqlEnum.dll 和 Microsoft.SqlServer.SmoEnum.dll,其中前者主要包含有用的枚舉;後者提供用於以編程方式訪問統一資源名稱 (URN) 地址的 Urn 類,URN 地址用於唯一標識 Microsoft SQL Server 對象。