本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第1章,第1.9节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.9 浏览SMO服务器对象
SQL管理对象(SQL Management Objects,SMO)拥有一个可编程访问的对象层次结构。例如,当你创建SMO服务器变量时,你可以访问数据库、登录和数据级别触发器。一旦获得单独数据库的句柄,我们可以切换它所包含的访问表、存储过程和视图。由于很多任务涉及SMO对象,如果你知道如何发现和浏览这些对象就会很有用。
1.9.1 准备
打开PowerShell控制台、PowerShell ISE或者你喜欢的PowerShell编辑器。
你也需要注意你的实例名是什么。如果你使用默认实例,你可以使用机器名。如果你使用命名实例,这个格式将会是<机器名><实例名>。
1.9.2 如何做…
在这个方法中,我们将使用SMO浏览对象层次结构。
1.导入SQLPS模块。
Import-Module SQLPS –DisableNameChecking
2.创建服务器实例。
$instanceName = "KERRIGAN"
$server = New-Object `
-TypeName Microsoft.SqlServer.Management.Smo.Server `
-ArgumentList $instanceName
3.获得可直接从$server对象可访问的SMO对象。
$server |
Get-Member -MemberType "Property" |
Where Definition -like "*Smo*"
4.现在查看在数据库下的SMO对象。执行如下操作。
$server.Databases |
Get-Member -MemberType "Property" |
Where Definition -like "*Smo*"
5.查看表,你可以输入以下内容并执行。
$server.Databases["AdventureWorks2012"].Tables |
Get-Member -MemberType "Property" |
Where Definition -like "*Smo*"
1.9.3 如何实现…
SMO包含了对象架构。在顶部有一个服务器对象,依次包含的对象包括Databases、Configuration、SqlMail、LoginCollection等。这些对象依次包含其他对象,例如,Databases是一个包含Database对象的集合,Database对象包含了Tables对象等。
1.9.4 更多…
导入SMO程序集方法
使用SMO创建SQL Server实例方法
你也可以从MSDN查阅SMO对象模型关系
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。