Freigeben über


Invoke-SqlNotebook

Führt eine SQL-Notizbuchdatei (IPYNB) aus und gibt das materialisierte Notizbuch aus.

Syntax

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]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      [-ConnectionString <Object>]
      [-InputFile <Object>]
      [-InputObject <Object>]
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      -InputFile <Object>
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      -InputObject <Object>
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]

Beschreibung

Das Cmdlet Invoke-SqlNotebook führt eine SQL-Notizbuchdatei (IPYNB) aus und gibt das materialisierte Notizbuch aus.

Das Notizbuch wird in der bereitgestellten ServerInstance und Datenbank ausgeführt.

Wenn das Cmdlet ausgeführt wird, befindet sich die resultierende Notizbuchdatei an dem Speicherort, den der Benutzer definiert oder im selben Verzeichnis der Eingabenotizbuchdatei.

Die Cmdlet-Ausgabedatei kann weggelassen werden: Wenn dies der Fall ist, wird sie mit dem Namen der Eingabedatei und dem an die Datei angefügten _out erstellt.

Beispiele

Beispiel 1: Ausführen eines Notizbuchs für den lokalen Server (Standardinstanz)

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

Mit diesem Befehl wird das Notizbuch für die Standardinstanz von SQL Server ausgeführt, die auf dem Computer ausgeführt wird, auf dem das Cmdlet ausgeführt wird. Da kein -OutputFile- übergeben wurde, wird das materialisierte Notizbuch auf dem Datenträger mit demselben Namen wie die InputFile- mit einem _out als Suffix an den Dateinamen (notebook.ipynb -> notebook_out.ipynb) gespeichert.

Beispiel 2: Ausführen des Notizbuchs auf dem lokalen Server (Instanz defaut) und Speichern des materialisierten Notizbuchs in einer angegebenen Datei

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

Mit diesem Befehl wird das Notizbuch für die Standardinstanz von SQL Server ausgeführt, die auf dem Computer ausgeführt wird, auf dem das Cmdlet ausgeführt wird. Das ausgeführte Notizbuch wird dann in der mit dem Parameter -OutputFile angegebenen Datei gespeichert.

Beispiel 3: Ausführen eines Notizbuchs mit -ConnectionString Parameter

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

Dies ist identisch mit Beispiel 1, nur dass die Verbindung mit dem Server über den parameter -ConnectionString angegeben wird.

Beispiel 4: Ausführen eines Notizbuchs für alle registrierten Server

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";
            }
        }

Verwenden Sie registrierte Server oder zentralen Verwaltungsserver, um Invoke-SqlNotebook für mehrere Server auszuführen. In diesem Beispiel wird die NetName-Eigenschaft der SQL Server-Instanz in den Namen der Ausgabedatei eingeschlossen. Das materialisierte Notizbuch wird zeitstempelt mit Jahresmonat-Tag-Stunde-Minute.

Beispiel 5: Notizbuch ausführen, Ergebnisse in Azure Data Studio öffnen

Installieren Sie die PowerShell-Erweiterung aus dem Azure Data Studio Marketplace. Verwenden Sie die integrierte PowerShell-Konsole in Azure Data Studio, um Invoke-SqlNotebook auszuführen, und verwenden Sie Open-EditorFile, um die Ergebnisse des SQL-Notizbuchs direkt in Azure Data Studio zu öffnen.

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

Hinweis: Der Befehl Open-EditorFile ist nur in der integrierten PowerShell-Konsole verfügbar.

Beispiel 6: Ausführen eines Notizbuchs, Herstellen einer Verbindung mit Azure SQL-Datenbanken (oder verwalteten Instanzen) mithilfe eines Dienstprinzipals

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

Parameter

-AccessToken

Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.

Dies kann z. B. zum Herstellen einer Verbindung mit SQL Azure DB und SQL Azure Managed Instance mithilfe eines Service Principal oder einer Managed Identity verwendet werden (siehe Verweise unten auf dieser Seite)

In gängigen Szenarien wird dieser Parameter mit etwa (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token abgerufen (erfordert das Az.Account-Modul)

Geben Sie UserName, Passwordoder Anmelde informationen nicht an, wenn Sie diesen Parameter verwenden.

Typ:PSObject
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ConnectionString

Gibt eine Verbindungszeichenfolge an, die mit dem Server verbunden werden soll.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Das PSCredential-Objekt, dessen Felder "Benutzername" und "Kennwort" zum Herstellen einer Verbindung mit der SQL-Instanz verwendet werden.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Database

Mit diesem Cmdlet wird eine Verbindung mit dieser Datenbank in der Instanz hergestellt, die im Parameter "ServerInstance" angegeben ist.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Encrypt

Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.

Dieser Wert ist der Encrypt Eigenschaft SqlConnectionEncryptOption für das SqlConnection-Objekt des Microsoft.Data.SqlClient-Treibers zugeordnet.

In v22 des Moduls ist die Standardeinstellung Optional (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Verpflichtend", wodurch für vorhandene Skripts eine bahnbrechende Änderung erstellt werden kann.

Dieser Parameter ist neu in v22 des Moduls.

Typ:String
Zulässige Werte:Mandatory, Optional, Strict
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Force

Wenn das Cmdlet das materialisierte Notizbuch in eine Datei schreibt, wird standardmäßig eine Überprüfung durchgeführt, um zu verhindern, dass der Benutzer versehentlich eine vorhandene Datei überschreibt. Verwenden Sie -Force, um diese Überprüfung zu umgehen und dem Cmdlet das Überschreiben der vorhandenen Datei zu ermöglichen.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-HostNameInCertificate

Der Hostname, der beim Überprüfen des SQL Server TLS/SSL-Zertifikats verwendet werden soll.

Dieser Parameter ist neu in v22 des Moduls.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputFile

Gibt eine Notizbuchdatei (IPYNB) an, die über das Cmdlet ausgeführt wird.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Gibt das Notizbuch als JSON-Zeichenfolge an, die als Eingabenotizbuch verwendet wird.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-OutputFile

Gibt die gewünschte Ausgabenotizbuchdatei an, für die das ausgeführte Notizbuch gespeichert wird.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Password

Gibt das Kennwort für die ANMELDE-ID der SQL Server-Authentifizierung an, die im Parameter "Username" angegeben wurde.

Bei Kennwörtern wird zwischen Groß- und Kleinschreibung unterschieden. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung, oder verwenden Sie stattdessen den Parameter -Credential.

Wenn Sie den Parameter "Password" gefolgt von Ihrem Kennwort angeben, ist das Kennwort für jeden sichtbar, der Ihren Monitor sehen kann.

Wenn Sie das Kennwort gefolgt von Ihrem Kennwort in einem .ps1 Skript codieren, wird Ihr Kennwort von jedem Benutzer angezeigt, der die Skriptdatei liest.

Weisen Sie der Datei die entsprechenden NTFS-Berechtigungen zu, um zu verhindern, dass andere Benutzer die Datei lesen können.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ProgressAction

Bestimmt, wie PowerShell auf Statusaktualisierungen reagiert, die von einem Skript, Cmdlet oder Anbieter generiert werden, z. B. auf die Statusanzeigen, die vom Cmdlet Write-Progress generiert werden. Das Cmdlet Write-Progress erstellt Statusanzeigen, die den Status eines Befehls anzeigen.

Typ:ActionPreference
Aliase:proga
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ServerInstance

Gibt eine Zeichenfolge oder ein SMO-Objekt (SQL Server Management Objects) an, das den Namen einer Instanz des Datenbankmoduls angibt.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-TrustServerCertificate

Gibt an, ob der Kanal verschlüsselt wird, während die Zertifikatkette umgangen wird, um die Vertrauensstellung zu überprüfen.

In v22 des Moduls ist die Standardeinstellung $true (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine änderung für vorhandene Skripts geändert wird.

Dieser Parameter ist neu in v22 des Moduls.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Username

Gibt die Anmelde-ID zum Herstellen einer SQL Server-Authentifizierungsverbindung zu einer Instanz des Datenbankmoduls an.

Das Kennwort muss über den Parameter "Password" angegeben werden.

Wenn Benutzername und Kennwort nicht angegeben sind, versucht dieses Cmdlet eine Windows-Authentifizierungsverbindung mit dem Windows-Konto, das die Windows PowerShell-Sitzung ausführt. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

Typ:Object
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

System.Object

System.Management.Automation.PSCredential

Ausgaben

System.Object

Hinweise

Eine gute Möglichkeit zum Visualisieren eines materialisierten Notizbuchs ist die Verwendung von Azure Data Studio.