SQL Server PowerShell 提供程序

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

用于 Windows PowerShell 的 SQL Server 提供程序用类似于文件系统路径的路径公开 SQL Server 对象的层次结构。 可以使用路径来查找对象,然后使用 SQL Server 管理对象 (SMO) 模型中的方法来针对对象执行操作。

注意

SQL Server PowerShell 模块有两种;SqlServer 和 SQLPS 。

SqlServer 模块是当前要使用的 PowerShell 模块。

虽然 SQL Server 安装附带了 SQLPS 模块(用于实现后向兼容性),但该模块不再更新。

SqlServer 模块不仅包含 SQLPS 更新版本的 cmdlet,还包含新的 cmdlet 以支持最新的 SQL 功能 。

PowerShell 库安装 SqlServer 模块。

有关详细信息,请参阅 SQL Server PowerShell

SQL Server PowerShell 提供程序的优点

通过 SQL Server 提供程序实现的路径有助于轻松地以交互方式查看 SQL Server 实例中的所有对象。 你可以使用与你通常用于导航文件系统路径的命令相似的 Windows PowerShell 别名来导航路径。

SQL Server PowerShell 层次结构

可以用层次结构表示其数据或对象模型的产品使用 Windows PowerShell 提供程序来公开层次结构。 该层次结构是使用与 Windows 文件系统所用结构相似的驱动器和路径结构公开的。

每个 Windows PowerShell 提供程序都实现一个或多个驱动器。 每个驱动器都是相关对象的层次结构的根节点。 SQL Server 提供程序实现一个 SQLSERVER: 驱动器。 该提供程序还为 SQLSERVER: 驱动器定义了一组主文件夹。 每个文件夹及其子文件夹表示一组可通过使用 SQL Server 管理对象模型访问的对象。 当关注某个以这些主文件夹之一开始的路径中的子文件夹时,可以使用相关对象模型中的方法对该节点所表示的对象执行操作。 下表列出了由 SQL Server 提供程序实现的 Windows PowerShell 文件夹:

Folder SQL Server 对象模型命名空间 对象
SQLSERVER:\SQL Microsoft.SqlServer.Management.Smo

Microsoft.SqlServer.Management.Smo.Agent

Microsoft.SqlServer.Management.Smo.Broker

Microsoft.SqlServer.Management.Smo.Mail
数据库对象,如表、视图和存储过程。
SQLSERVER:\SQLPolicy Microsoft.SqlServer.Management.Dmf

Microsoft.SqlServer.Management.Facets
基于策略的管理对象,如策略和方面。
SQLSERVER:\SQLRegistration Microsoft.SqlServer.Management.RegisteredServers

Microsoft.SqlServer.Management.Smo.RegSvrEnum
已注册的服务器对象,如服务器组和已注册服务器。
SQLSERVER:\Utility Microsoft.SqlServer.Management.Utility 实用工具对象,例如, 数据库引擎的托管实例
SQLSERVER:\DAC Microsoft.SqlServer.Management.Dac 数据层应用程序对象(如 DAC 包)和操作(如部署 DAC)。
SQLSERVER:\DataCollection Microsoft.SqlServer.Management.Collector 数据收集器对象,如收集组和配置存储区。
SQLSERVER:\SSIS Microsoft.SqlServer.Management.IntegrationServices Integration Services 对象,如项目、包和环境。
SQLSERVER:\XEvent Microsoft.SqlServer.Management.XEvent SQL Server 扩展事件
SQLSERVER:\DatabaseXEvent Microsoft.SqlServer.Management.XEventDbScoped SQL Server 扩展事件
SQLSERVER:\SQLAS Microsoft.AnalysisServices Analysis Services 对象,例如多维数据集、聚合和维度。

例如,可以使用 SQLSERVER:\SQL 文件夹作为路径的开头,该路径可以表示 SMO 对象模型支持的任何对象。 SQLSERVER:\SQL 路径的前导部分是 SQLSERVER:\SQL\ComputerName\InstanceName。 实例名称后面的节点在对象集合(如“数据库”或“视图”)和对象名称(如 AdventureWorks2022)之间交替变化。 架构不用对象类表示。 在为架构中的顶层对象(如表或视图)指定节点时,必须以 SchemaName.ObjectName 格式指定对象名称。

以下示例显示 AdventureWorks2022 数据库的 Purchasing 架构中的 Vendor 表的路径,该数据库位于本地计算机上的“数据库引擎”默认实例中:

SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Tables\Purchasing.Vendor  

有关 SMO 对象模型层次结构的详细信息,请参阅 SMO Object Model Diagram

路径中的集合节点与相关对象模型中的集合类相关联。 对象名节点与相关对象模型中的对象类相关联,如下表中所示:

路径 SMO 类
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases DatabaseCollection
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2022 Database

SQL Server 提供程序任务

任务说明 项目
介绍如何使用 Windows PowerShell cmdlet 导航路径中的节点,以及如何在每个节点获取该节点上对象的列表。 导航 SQL Server PowerShell 路径
介绍如何使用 SMO 方法和属性对路径中的节点表示的对象进行报告和执行任务。 还介绍如何获取该节点的 SMO 方法和属性的列表。 使用 SQL Server PowerShell 路径
介绍如何将 SMO 统一资源名称 (URN) 转换为 SQL Server 提供程序路径。 将 URN 转换为 SQL Server 提供程序路径
介绍如何使用 SQL Server 提供程序打开 SQL Server 身份验证连接。 默认情况下,提供程序使用通过运行 Windows PowerShell 会话的 Windows 帐户的凭据生成的 Windows 身份验证连接。 在数据库引擎 PowerShell 中管理身份验证

后续步骤

SQL Server PowerShell