Encoder et décoder des identificateurs SQL Server

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Les identificateurs délimités SQL Server contiennent parfois des caractères non pris en charge dans les chemins Windows PowerShell. Vous pouvez spécifier ces caractères en encodant leurs valeurs hexadécimales.

Notes

Il existe deux modules SQL Server PowerShell : SqlServer et SQLPS.

Le module SqlServer est le module PowerShell actuel à utiliser.

Le module SQLPS fait partie de l’installation de SQL Server (à des fins de compatibilité descendante), mais il n’est plus mis à jour.

Le module SqlServer contient les versions mises à jour des applets de commande disponibles dans SQLPS ainsi que de nouvelles applets de commande pour prendre en charge les dernières fonctionnalités SQL.

Installez le module SqlServer à partir de PowerShell Gallery.

Pour plus d’informations, consultez SQL Server PowerShell.

Les caractères qui ne sont pas pris en charge dans les noms de chemins d'accès Windows PowerShell peuvent être représentés ou codés, sous la forme du caractère « % » suivi de la valeur hexadécimale pour le modèle binaire qui représente le caractère, comme dans « **%**xx ». Le codage peut toujours être utilisé pour gérer des caractères qui ne sont pas pris en charge dans les chemins d'accès Windows PowerShell.

La cmdlet Encode-SqlName prend comme entrée un identificateur SQL Server. Elle génère une chaîne contenant tous les caractères qui ne sont pas pris en charge par le langage Windows PowerShell codés avec « % xx ». La cmdlet Decode-SqlName prend comme entrée un identificateur SQL Server encodé et retourne l’identificateur d’origine.

Limitations et restrictions

Les applets de commande Encode-Sqlname et Decode-Sqlname encodent ou décodent uniquement les caractères autorisés dans les identificateurs délimités SQL Server, mais ne sont pas prises en charge dans les chemins PowerShell. Voici les caractères encodés par Encode-SqlName et décodés par Decode-SqlName :

Caractère \ / : % < > * ? [ ] |
Encodage hexadécimal %5C %2F %3A %25 %3C %3E %2A %3F %5B %5D %7C

Encodage d'un identificateur

Pour encoder un identificateur SQL Server dans un chemin d'accès PowerShell

  • Utilisez l'une des deux méthodes suivantes pour encoder un identifiant SQL Server :
    • Spécifiez le code hexadécimal du caractère non pris en charge à l'aide de la syntaxe %XX, où XX est le code hexadécimal.
    • Passez l’identificateur en tant que chaîne entre guillemets à l’applet de commande Encode-Sqlname

Exemples (encodage)

Cet exemple spécifie la version encodée du caractère « : » (%3A) :

Set-Location Table%3ATest

Vous pouvez également utiliser Encode-SqlName pour générer un nom pris en charge par Windows PowerShell :

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

Décodage d'un identificateur

Pour décoder un identificateur SQL Server à partir d'un chemin d'accès PowerShell

Utilisez l’applet de commande Decode-Sqlname pour remplacer les encodages hexadécimaux par les caractères représentés par l’encodage.

Exemples (décodage)

Cet exemple retourne « Table:Test » :

Decode-SqlName "Table%3ATest"

Voir aussi