共用方式為


使用 SQL Server PowerShell 路徑

當您導覽至 Database Engine 提供者路徑中的節點之後,即可使用與該節點相關聯之 Database Engine 管理物件的方法與屬性,進行工作或取得資訊。

  1. 開始之前

  2. **處理路徑節點:**列出方法與屬性、使用方法與屬性

開始之前

當您導覽至 Database Engine 提供者路徑中的節點之後,可以執行兩種動作:

  • 您可以執行在節點上運作的 Windows PowerShell Cmdlet,例如 Rename-Item

  • 您可以從相關聯的 SQL Server 管理物件模型 (如 SMO) 呼叫方法。 例如,如果您導覽至路徑中的 Databases 節點,您可以使用 Database 類別的方法和屬性。

SQL Server 提供者是用來管理 Database Engine 執行個體中的物件, 而不是用來處理資料庫中的資料。 如果您導覽至資料表或檢視表,即無法使用此提供者選取、插入、更新或刪除資料。 使用 Invoke-Sqlcmd Cmdlet 可從 Windows PowerShell 環境,查詢或變更資料表與檢視表中的資料。 如需詳細資訊,請參閱<Invoke-Sqlcmd 指令程式>。

[回到頁首]

列出方法與屬性

列出方法與屬性

請使用 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 方法與屬性

若要從 Database Engine 提供者路徑對物件進行工作,可以使用 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