使用 SQL ServerPowerShell 路径
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)
在您导航到 数据库引擎 提供程序路径中的某一节点后,可通过使用与该节点相关联的 数据库引擎 管理对象中的方法和属性,执行工作或检索信息。
注意
SQL Server PowerShell 模块有两种;SqlServer 和 SQLPS 。
SqlServer 模块是当前要使用的 PowerShell 模块。
虽然 SQL Server 安装附带了 SQLPS 模块(用于实现后向兼容性),但该模块不再更新。
SqlServer 模块不仅包含 SQLPS 更新版本的 cmdlet,还包含新的 cmdlet 以支持最新的 SQL 功能 。
从 PowerShell 库安装 SqlServer 模块。
有关详细信息,请参阅 SQL Server PowerShell。
在导航到 数据库引擎 提供程序路径中的节点之后,可以执行两种类型的操作:
可以运行作用于节点的 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: 路径中的 AdventureWorks2022
节点,并列出对象属性:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022
Get-Item . | Get-Member -Type Properties
使用方法和属性
使用 SMO 方法和属性
若要从 数据库引擎 提供程序路径对对象执行操作,您可以使用 SMO 方法和属性。
示例:使用方法和属性
以下示例使用 SMO“Schema”属性,从 AdventureWorks2022
中的 Sales 架构中获取表的列表:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Tables
Get-ChildItem | where {$_.Schema -eq "Sales"}
此示例使用 SMO“Script”方法生成一个包含“CREATE VIEW”语句的脚本,你必须使用该脚本在 AdventureWorks2022
中重新创建视图:
Remove-Item C:\PowerShell\CreateViews.sql
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\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
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈