使用 SQL DMO 脚本化表






4.41/5 (11投票s)
2003 年 4 月 13 日
2分钟阅读

89768

2571
本文展示了将 SQL-DMO 与 SQL Server 2000 结合使用来编写对象脚本的强大功能。在此示例中,我们将编写表的脚本。
引言
SQL-DMO 封装 SQL Server 组件,并将它们作为组件片的属性呈现给您,作为对象实例的属性。 您必须更改实例的属性或使用对象方法来自动化 SQL Server 管理。 本文预览了 DMO 的一项功能,即从 SQL Server 编写表描述的脚本。 此代码可帮助您从您选择的数据库中编写表定义的脚本。 您可以选择编写与表关联的索引和触发器的脚本。
应用程序先决条件
SQL-DMO 使用 Microsoft® SQL Server ODBC 驱动程序连接到 SQL Server 实例并与之通信。 如果您安装了 SQL Server 企业管理器,那么您的系统上应该安装了 SQL DMO。 如果您没有 SQL 工具,那么以下文章 向您展示了如何安装这些对象。
此应用程序需要 MDAC v2.6 或更高版本。 可以从 Microsoft 获取。 其中包含连接到数据库或数据源所需的 OLE DB 驱动程序。
使用应用程序
此应用程序首先使用 DMO API 枚举当前网络中所有数据库的列表。 您可以计划选择任何列出的 SQL Server 并提供凭据进行连接。 如果发生任何故障,则会向用户显示错误。
//
// Enumerating all the SQL Servers in the network
//
Set NameList = sqlApp.ListAvailableSQLServers
' Get the Servers on the network and display the Values into the combo
For index = 1 To NameList.Count
cboServer.AddItem NameList.Item(index)
Next
在用户成功登录 SQL Server 计算机后,我们执行的下一步是枚举前面步骤中选择的 SQL Server 中的所有数据库。 选择数据库后,我们查询并获取与此数据库关联的所有表。 我们还添加了选择列表中包含 (all) 关键字的所有表的功能。
//
// Enumerating all the Databases on the selected Server.
//
' Fill the database combobox
For Each db In SQLServer.Databases
If Not db.SystemObject Then
cboDatabases.AddItem db.Name
End If
Next
我们只是触及了表面。 实际功能即将到来。 是的,脚本编写过程。 选择要编写脚本的数据库和表后,用户只需单击一下即可获得他的脚本。 按下生成脚本按钮后,用户将获得另一个窗口,其中包含特定表的脚本。
//
// Generating the table scripts
//
Set tbl = SQLDatabase.Tables(cboTables.Text)
Script = Script & tbl.Script(param)
结论
我们只是触及了表面,探索了 SQL-DMO 可以为我们提供什么。 这无疑是一种简单而优雅的编码方式。 有关 SQL-DMO 功能的更多信息,请参阅 MSDN 或 SQL Server BOL。