SQL Distributed Management Objects (SQL-DMO) 為 COM 程式庫,允許 VB6/VBA/.NET (透過 Interop) 程式化管理 SQL Server:列舉伺服器、建立資料庫、備份/還原、權限管理、作業排程等。
VBA/VB6:工具 → 參考 → 勾選 "Microsoft SQLDMO Object Library"。
.NET:加入 `Microsoft.SqlServer.Dmo` 參考 (需安裝 SQL Server Client Tools SDK)。
Dim sqlApp As New SQLDMO.Application
Dim nameList As SQLDMO.NameList
Set nameList = sqlApp.ListAvailableSQLServers()
Dim i As Long
For i = 1 To nameList.Count
List1.AddItem nameList.Item(i) ' 填入 ListBox
Next
Dim sqlSrv As New SQLDMO.SQLServer
sqlSrv.LoginSecure = True ' Windows 整合驗證
Call sqlSrv.Connect("MyServer", "username", "password")
Debug.Print "Name: " & sqlSrv.Name
Debug.Print "Host: " & sqlSrv.HostName
Debug.Print "Status: " & sqlSrv.Status ' 0=正常, 1=啟動中, 2=暫停, 3=斷線等
Debug.Print "Version: " & sqlSrv.VersionString
Debug.Print "Edition: " & sqlSrv.ProductLevel
sqlSrv.Databases.Add("NewDB")Dim bak As New SQLDMO.Backup ... bak.SQLBackup sqlSrvsqlSrv.Databases("master").ExecuteImmediate("DBCC CHECKDB")For Each job In sqlSrv.JobServer.Jobs ... Next