概述 
SQL分布式管理对象(SQL Distributed Management objects, SQL-DMO)为开发者提供了使用程序和脚本语言执行普通任务的方法,从而扩展了SQL Server功能。本文谈论如何巧妙的利用SQL-DMO创建数据库备份和校验的ASP应用。 
前提 
你需要有SQL Server数据库备份的相关知识。另外还要在global.asa文件中加入SQL-DMO库的引用。以下是SQL Server 2000的引用: 
| <!--METADATA TYPE="TypeLib" NAME="Microsoft 
SQLDMO Object Library" UUID="
" VERSION="8.0"--> | 
 
本文示例代码适用于SQL 7.0, MSDE, 和 SQL Server 2000。 
喜与忧 
使用SQL-DMO对象让人且喜且忧。它提供了非常丰富的功能,以至于不知该如何使用。本文只讨论示例涉及的对象属性和方法。你可以在SQL Server在线教学上找到许多相关信息。 
SQLDMO.SQLServer 
用于连接SQL Server数据库: 
| <%
  Dim srv
  Set srv = Server.CreateObject("SQLDMO.SQLServer")
  srv.LoginTimeout = 15
  srv.Connect "servername", "username", "passWord"
%> | 
 
这里通过代入用户名和口令来连接SQL Server数据库。如果要使用NT的身份认证,就将它的LoginSecure属性设为真(TRUE),忽略代入的用户名和口令,而使用NT的注册信息。 
SQLDMO.Database 
列出服务器中的数据库。在本文示例中,对列出的数据库进行备份。下面的代码将服务器中的数据库列于下拉菜单: 
| <%
  Dim srv
  Dim objDB
  Set srv = Server.CreateObject("SQLDMO.SQLServer")
  srv.LoginTimeout = 15 
  srv.Connect "servername", "username", "password"
  Set objDB = Server.CreateObject("SQLDMO.Database")
%>
 <SELECT name="fdatabase">
<%
  For Each objDB In srv.Databases
    If objDB.SystemObject = False Then
%>
  <OPTION><%=objDB.Name%></OPTION>
<%
    End If
  Next
%>
 </SELECT> | 
 
SQLDMO.BackupDevice 
列出服务器上安装的备份装置。我建议使用备份装置来备份数据库。因为这样可以使用SQL-DMO的校验功能来校验备份情况。下面的代码列出服务器上的备份装置: 
| <%
  Dim srv
  Dim objDevice
  Set srv = Server.CreateObject("SQLDMO.SQLServer")
  srv.LoginTimeout = 15 
  srv.Connect "servername", "username", "password"
  Set objDevice = Server.CreateObject("SQLDMO.BackupDevice")
 
  For Each objDevice In srv.BackupDevices
    Response.Write objDevice.Name + "<BR>"
  Next
%> |