Share via


Codierung und Decodierung von SQL Server-Bezeichnern

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Begrenzungsbezeichner von SQL Server können Zeichen enthalten, die in Windows PowerShell-Pfaden nicht unterstützt werden. Diese Zeichen können angegeben werden, indem ihre Hexadezimalwerte codiert werden.

Hinweis

Es gibt zwei SQL Server PowerShell-Module: SqlServer und SQLPS.

Das SqlServer-Modul ist das zu verwendende aktuelle PowerShell-Modul.

Das SQLPS-Modul ist zwar in der SQL Server-Installation (für die Abwärtskompatibilität) enthalten, wird jedoch nicht mehr aktualisiert.

Das SqlServer-Modul enthält aktualisierte Versionen der Cmdlets in SQLPS sowie neue Cmdlets zur Unterstützung der neuesten SQL-Funktionen.

Installieren Sie das SqlServer-Modul aus dem PowerShell-Katalog.

Weitere Informationen finden Sie unter SQL Server-PowerShell.

Zeichen, die in Windows PowerShell-Pfadnamen nicht unterstützt werden, können als „%“-Zeichen gefolgt vom Hexadezimalwert des Bitmusters, das das Zeichen darstellt, dargestellt bzw. codiert werden (Beispiel: **%**xx). Codierung kann immer zur Verarbeitung von Zeichen verwendet werden, die in Windows PowerShell-Pfaden nicht unterstützt werden.

Das Cmdlet Encode-SqlName akzeptiert als Eingabe einen SQL Server-Bezeichner. Es gibt eine Zeichenfolge mit allen nicht von der Windows PowerShell-Sprache unterstützten Zeichen, die mit "%xx" codiert sind, aus. Das Cmdlet Decode-SqlName akzeptiert einen codierten SQL Server-Bezeichner als Eingabe und gibt den ursprünglichen Bezeichner zurück.

Einschränkungen

Die Cmdlets Encode-Sqlname und Decode-Sqlname codieren oder decodieren nur die Zeichen, die in SQL Server-Begrenzungsbezeichnern zulässig sind, aber in PowerShell-Pfaden nicht unterstützt werden. Im Folgenden werden die Zeichen aufgeführt, die von Encode-SqlName codiert und von Decode-SqlName decodiert werden:

Zeichen \ / : % < > * ? [ ] |
Hexadezimale Codierung %5C %2F %3A %25 %3C %3E %2A %3F %5B %5D %7C

Codieren eines Bezeichners

So codieren Sie einen SQL Server-Bezeichner in einem PowerShell-Pfad

  • Codieren Sie mithilfe einer der folgenden beiden Methoden einen SQL Server-Bezeichner:
    • Geben Sie den Hexadezimalcode für das nicht unterstützte Zeichen an, indem Sie die Syntax % XX verwenden, wobei XX der Hexadezimalcode ist.
    • Übergeben Sie den Bezeichner als Zeichenfolge in Anführungszeichen an das Cmdlet Encode-Sqlname .

Beispiele (Codierung)

In diesem Beispiel wird die codierte Version des Zeichens ":" (%3A) dargestellt:

Set-Location Table%3ATest

Alternativ können Sie Encode-SqlName verwenden, um einen von Windows PowerShell unterstützten Namen zu erstellen:

Set-Location (Encode-SqlName "Table:Test")

Decodieren eines Bezeichners

So decodieren Sie einen SQL Server-Bezeichner aus einem PowerShell-Pfad

Verwenden Sie das Cmdlet Decode-Sqlname , um die Hexadezimalcodierungen durch die von der Codierung dargestellten Zeichen zu ersetzen.

Beispiele (Decodierung)

Dieses Beispiel gibt „Table:Test“ zurück:

Decode-SqlName "Table%3ATest"

Weitere Informationen