Freigeben über


Codieren und Decodieren von SQL Server-Bezeichnern

SQL Server-durch Trennzeichen getrennte Bezeichner enthalten manchmal Zeichen, 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 für das Bitmuster dargestellt oder codiert werden, das das Zeichen darstellt, wie in "**%**xx". Codierung kann immer zur Verarbeitung von Zeichen verwendet werden, die in Windows PowerShell-Pfaden nicht unterstützt werden.

Das Encode-Sqlname Cmdlet verwendet einen SQL Server-Bezeichner als Eingabe und gibt eine Zeichenfolge mit allen Zeichen aus, die von der Windows PowerShell-Sprache codiert werden %xx. Das Decode-SqlName Cmdlet verwendet einen codierten SQL Server-Bezeichner als Eingabe und gibt den ursprünglichen Bezeichner zurück.

Beschränkungen und Einschränkungen

Die Encode-Sqlname und Decode-Sqlname Cmdlets codieren oder decodieren nur die in SQL Server-getrennten Bezeichnern zulässigen Zeichen, werden aber in PowerShell-Pfaden nicht unterstützt. Im Folgenden sind die zeichencodiert und Encode-SqlName decodiert von Decode-SqlName:

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 Bezeichners als Zeichenfolge in Anführungszeichen an das Encode-Sqlname-Cmdlet.

Beispiel (Codierung)

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

Set-Location Table%3ATest

Alternativ können Encode-Sqlname Sie einen von Windows PowerShell unterstützten Namen erstellen:

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

Decodieren eines Bezeichners

Um einen SQL Server-Bezeichner aus einem PowerShell-Pfad zu decodieren, verwenden Sie das Decode-Sqlname Cmdlet, um die hexadezimalen Codierungen durch die Zeichen zu ersetzen, die die Codierung darstellt.

Beispiel (Decodieren)

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

Decode-SqlName "Table%3ATest"