使用 SQL ServerPowerShell 路径

在您导航到 数据库引擎 提供程序路径中的某一节点后,可通过使用与该节点相关联的 数据库引擎 管理对象中的方法和属性,执行工作或检索信息。

  1. 开始之前

  2. To work on a path node:Listing Methods and Properties, Using Methods and Properties

开始之前

导航到数据库引擎提供程序路径中的节点后,可以执行两种类型的操作:

  • 可以运行作用于节点的 Windows PowerShell cmdlet,如 Rename-Item

  • 可以调用相关联的 SQL Server 管理对象模型中的方法,如 SMO。 例如,如果你导航到路径中的 Databases 节点,则可以使用 Database 类的方法和属性。

SQL Server 提供程序用于管理 数据库引擎实例中的对象, 而不能用于处理数据库中的数据。 如果您已经导航到表或视图,则不能使用该提供程序选择、插入、更新或删除数据。 可以使用 Invoke-Sqlcmd cmdlet 来查询或更改 Windows PowerShell 环境内表和视图中的数据。 有关详细信息,请参阅 Invoke-Sqlcmd cmdlet

列出方法和属性

若要查看可供特定对象或对象类使用的方法和属性,请使用 Get-Member cmdlet。

示例:列出方法和属性

下面的示例将 Windows PowerShell 变量设置为 SMO Database 类并列出其方法和属性:

$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database  
$MyDBVar | Get-Member -Type Methods  
$MyDBVar | Get-Member -Type Properties  

还可以使用 Get-Member 列出与 Windows PowerShell 路径的结束节点相关联的方法和属性。

下面的示例导航到 SQLSERVER: 路径中的 Databases 节点,并列出集合属性:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases  
Get-Item . | Get-Member -Type Properties  

下面的示例导航到 SQLSERVER: 路径中的 AdventureWorks2012 节点,并列出对象属性:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012  
Get-Item . | Get-Member -Type Properties  

使用 SMO 方法和属性

若要从 数据库引擎 提供程序路径对对象执行操作,您可以使用 SMO 方法和属性。

示例:使用方法和属性

下面的示例使用 SMO Schema 属性,从 AdventureWorks2012 中的 Sales 架构中获取表的列表:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012\Tables  
Get-ChildItem | Where {$_.Schema -eq "Sales"}  

此示例使用 SMO Script 方法生成一个脚本,其中包含 CREATE VIEW 在 AdventureWorks2012 中重新创建视图所必须具备的语句:

Remove-Item C:\PowerShell\CreateViews.sql  
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012\Views  
foreach ($Item in Get-ChildItem) { $Item.Script() | Out-File -Filepath C:\PowerShell\CreateViews.sql -append }  

下面的示例使用 SMO Create 方法创建一个数据库,然后使用 State 属性显示该数据库是否存在:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases  
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database  
$MyDBVar.Parent = (Get-Item ..)  
$MyDBVar.Name = "NewDB"  
$MyDBVar.Create()  
$MyDBVar.State  

另请参阅

SQL Server PowerShell 提供程序
导航 SQL Server PowerShell 路径
将 URN 转换为 SQL Server 提供程序路径
SQL Server PowerShell