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