共用方式為


Invoke-SqlNotebook

執行 SQL Notebook 檔案 (.ipynb),並輸出具體化的筆記本。

語法

ByConnectionParameters (預設值)

Invoke-SqlNotebook
    [-ServerInstance <Object>]
    [-Database <Object>]
    [-Username <Object>]
    [-Password <Object>]
    [-Credential <PSCredential>]
    [-InputFile <Object>]
    [-InputObject <Object>]
    [-OutputFile <Object>]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-Encrypt <String>]
    [-HostNameInCertificate <String>]
    [-Force]
    [<CommonParameters>]

ByConnectionString

Invoke-SqlNotebook
    [-ConnectionString <Object>]
    [-InputFile <Object>]
    [-InputObject <Object>]
    [-OutputFile <Object>]
    [-Force]
    [<CommonParameters>]

ByInputFile

Invoke-SqlNotebook
    -InputFile <Object>
    [-OutputFile <Object>]
    [-Force]
    [<CommonParameters>]

ByInputObject

Invoke-SqlNotebook
    -InputObject <Object>
    [-OutputFile <Object>]
    [-Force]
    [<CommonParameters>]

Description

Invoke-SqlNotebook Cmdlet 會執行 SQL Notebook 檔案 (.ipynb),並輸出具體化的筆記本。

Notebook 將會在提供的 ServerInstance 和 Database 上執行。

執行 Cmdlet 時,產生的 Notebook 檔案將會位於使用者定義的位置,或位於輸入筆記本檔案的相同目錄中。

可能會省略 Cmdlet outfile:如果是這種情況,則會使用輸入檔名稱和附加至檔案 的_out 來建立。

範例

範例 1:對本地伺服器執行 Notebook(預設實例)

PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     4656   notebook_out.ipynb

此命令會針對執行 Cmdlet 之機器上執行之 SQL Server 的預設實例執行筆記本。 根據預設,由於未傳入 -OutputFile,具體化筆記本會儲存在磁碟上,其名稱與_out作為檔名後綴的 InputFile 相同(notebook.ipynb -> notebook_out.ipynb)

範例 2:在本機伺服器上執行 Notebook(defaut 實例),並將具體化的 Notebook 儲存至指定的檔案

PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb -OutputFile C:\new_notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     44656  new_notebook.ipynb

此命令會針對執行 Cmdlet 之機器上執行之 SQL Server 的預設實例執行筆記本。 然後,執行中的筆記本會儲存至使用 -OutputFile 參數指定的檔案。

範例 3:使用 -ConnectionString 參數執行筆記本

PS C:\> Invoke-Sqlnotebook -ConnectionString 'Server=Localhost;Database=TestNotebook;Trusted_Connection=True;' -InputFile C:\notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     44656  notebook_out.ipynb

這與範例 1 相同,只有透過 -ConnectionString 參數指定與伺服器的連線。

範例 4:對所有已註冊的伺服器執行筆記本

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' |
WHERE { $_.Mode -ne 'd'} |
foreach {
    $datetime = Get-Date -Format yyyyMMddhhmm;
    Get-SqlInstance -ServerInstance $_.Name |
    foreach {
            Invoke-SqlNotebook -ServerInstance $_.Name -Database master -InputFile '$home\Documents\SQL Server Management Studio\BPCheck.ipynb' `
            -OutputFile "BPCheck_output_$($_.NetName)_$($datetime).ipynb";
            }
        }

使用已註冊的伺服器或中央管理伺服器對多部伺服器執行 Invoke-SqlNotebook。 在此範例中, NetName SQL Server 實例的 屬性會包含在輸出檔的名稱中;具體化的筆記本將會以年月-日-小時分鐘時間戳。

範例 5:執行 Notebook,在 Azure Data Studio 中開啟結果

從 Azure Data Studio Marketplace 安裝 PowerShell 擴充功能 。 使用 Azure Data Studio 中的 PowerShell 整合式主控台來執行 Invoke-SqlNotebook ,並使用 Open-EditorFile 直接在 Azure Data Studio 中開啟 SQL Notebook 的結果。

Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile

注意: Open-EditorFile 命令只能在PowerShell整合式控制台中使用。

範例 6:執行 Notebook、使用服務主體連線到 Azure SQL Database (或受控實例)

Import-Module SQLServer
Import-Module Az.Accounts -MinimumVersion 2.2.0

### Obtain the Access Token interactively.
### Note: help for Invoke-Sqlcmd has examples on other ways to acquire the token.
Connect-AzAccount
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token

# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-SqlNotebook -ServerInstance myserver.database.windows.net -Database master -AccessToken $access_token`
                   -InputFile MyNotebook.ipynb

參數

-AccessToken

用來向 SQL Server 驗證的存取令牌,作為使用者/密碼或 Windows 驗證的替代方案。

例如,這可以用來連接到 SQL Azure DB 或使用 SQL Azure Managed InstanceService PrincipalManaged Identity (請參閱此頁面底部的參考)

在常見的案例中,此參數會以類似的方式 (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token 取得(需要 Az.Account 模組)

使用此參數時,請勿指定 UserNamePasswordCredential

參數屬性

類型:PSObject
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ConnectionString

指定要連線到伺服器的連接字串。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionString
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Credential

PSCredential 物件,其 [用戶名稱] 和 [密碼] 字段將用來連線到 SQL 實例。

參數屬性

類型:PSCredential
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Database

此 Cmdlet 會連線到 ServerInstance 參數中所指定實例中的這個資料庫。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Encrypt

線上到 SQL Server 時要使用的加密類型。

此值會對應至 Encrypt Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 屬性 SqlConnectionEncryptOption

在模組的 v22 中,預設值為 Optional (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 「強制」,這可能會為現有的腳本建立重大變更。

此參數是模組 v22 的新功能。

參數屬性

類型:String
預設值:None
接受的值:Mandatory, Optional, Strict
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Force

根據預設,當 Cmdlet 將具體化筆記本寫入檔案時,會執行檢查以防止使用者意外覆寫現有的檔案。 使用 -Force 略過這項檢查,並允許 Cmdlet 覆寫現有的檔案。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-HostNameInCertificate

用於驗證 SQL Server TLS/SSL 憑證的主機名稱。

此參數是模組 v22 的新功能。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputFile

指定將透過 Cmdlet 執行的 Notebook 檔案 (.ipynb)。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
ByConnectionString
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputObject

將 Notebook 指定為將做為輸入筆記本的 Json 字串。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
ByConnectionString
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-OutputFile

指定要儲存執行筆記本的所需輸出 Notebook 檔案。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Password

指定 Username 參數中指定的 SQL Server 驗證登入識別符密碼。

密碼會區分大小寫。 可能的話,請使用 Windows 驗證,或考慮改用 -Credential 參數。

如果您指定 Password 參數後面接著您的密碼,則任何可以看到您監視器的使用者都可以看見密碼。

如果您在 .ps1 文稿中撰寫密碼後接密碼,則任何讀取腳本檔案的人都會看到您的密碼。

將適當的NTFS許可權指派給檔案,以防止其他使用者讀取檔案。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ServerInstance

指定指定 Database Engine 實例名稱的字元字串或 SQL Server 管理物件 (SMO) 物件。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-TrustServerCertificate

指出通道是否會在略過憑證鏈結以驗證信任時加密。

在模組的 v22 中,預設值為 $true (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。

此參數是模組 v22 的新功能。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Username

指定對 Database Engine 實例進行 SQL Server 驗證連線的登入標識碼。

密碼必須透過Password參數指定。

如果未指定 Username 和 Password,此 Cmdlet 會嘗試使用執行 Windows PowerShell 會話的 Windows 帳戶進行 Windows 驗證連線。 盡可能使用 Windows 驗證。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByConnectionParameters
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

System.Object

System.Management.Automation.PSCredential

輸出

System.Object

備註

可視化具體化筆記本的好方法是使用 Azure Data Studio。