Freigeben über


Invoke-SqlNotebook

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

Syntax

ByConnectionParameters (Standardwert)

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>]

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-Outfile-Datei 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 standardmäßig 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 aufgenommen. Das materialisierte Notizbuch wird mit einem Zeitstempel mit Jahresmonat-Tag-Stunde-Minute versehen.

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 die Ergebnisse des SQL-Notizbuchs direkt in Azure Data Studio auszuführen Invoke-SqlNotebook und Open-EditorFile zu öffnen.

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

Hinweis: Der Open-EditorFile Befehl 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. verwendet werden, um eine Verbindung mit SQL Azure DB einer SQL Azure Managed Instance oder einer oder einer Service PrincipalManaged Identity herzustellen (siehe Verweise unten auf dieser Seite)

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

Geben Sie bei Verwendung dieses Parameters nicht "UserName", " Password" oder "Credential " an.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ConnectionString

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

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionString
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Credential

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

Parametereigenschaften

Typ:PSCredential
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Database

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

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 Optional der Standardwert (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.

Parametereigenschaften

Typ:String
Standardwert:None
Zulässige Werte:Mandatory, Optional, Strict
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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. Wird -Force verwendet, um diese Überprüfung zu umgehen und dem Cmdlet das Überschreiben der vorhandenen Datei zu ermöglichen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-HostNameInCertificate

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

Dieser Parameter ist neu in v22 des Moduls.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputFile

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

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ByConnectionString
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputObject

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

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ByConnectionString
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-OutputFile

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

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 nach 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.

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ServerInstance

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

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 $true der Standardwert (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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByConnectionParameters
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

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.