Codificar y descodificar identificadores de SQL Server

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Los identificadores delimitados de SQL Server a veces contienen caracteres no admitidos en las rutas de acceso de Windows PowerShell. Estos caracteres se pueden especificar codificando sus valores hexadecimales.

Nota:

Hay dos módulos de SQL Server PowerShell: SqlServer y SQLPS.

El módulo SqlServer es el módulo de PowerShell actual que se va a usar.

El módulo SQLPS está incluido en la instalación de SQL Server (por motivos de compatibilidad con versiones anteriores), pero ya no se actualiza.

El módulo SqlServer contiene versiones actualizadas de los cmdlets en SQLPS e incluye cmdlets para admitir las características más recientes de SQL.

Instale el módulo SqlServer desde la Galería de PowerShell.

Para más información, consulte el artículo sobre SQL Server PowerShell.

Los caracteres que no se permiten en los nombres de ruta de Windows PowerShell se pueden representar, o codificar, como el carácter "%" seguido del valor hexadecimal del modelo de bits que representa el carácter, como en "**%**xx". La codificación siempre se puede usar para controlar los caracteres que no se admiten en las rutas de Windows PowerShell.

El cmdlet Encode-SqlName toma como entrada un identificador de SQL Server. Genera una cadena con todos los caracteres que no son admitidos por el lenguaje de Windows PowerShell codificados con "%xx". El cmdlet Decode-SqlName toma como entrada un identificador de SQL Server codificado y devuelve el identificador original.

Limitaciones y restricciones

Los cmdlets Encode-Sqlname y Decode-Sqlname solo codifican o descodifican caracteres que se permiten en los identificadores delimitados de SQL Server, pero no solo se admiten en las rutas de PowerShell. Estos son los caracteres codificados por Encode-SqlName y descodificados por Decode-SqlName:

Carácter \ / : % < > * ? [ ] |
Codificación hexadecimal %5C %2F %3A %25 %3C %3E %2A %3F %5B %5D %7C

Codificar un identificador

Para codificar un identificador de SQL Server en una ruta de acceso de PowerShell

  • Use uno de los dos métodos para codificar un identificador de SQL Server:
    • Especifique el código hexadecimal para el carácter no compatible mediante la sintaxis %XX, donde el código hexadecimal es XX.
    • Transfiera el identificador como una cadena entrecomillada al cmdlet Encode-Sqlname .

Ejemplos (codificación)

Este ejemplo especifica la versión codificada del carácter (%3A) ":":

Set-Location Table%3ATest

También puede usar Encode-SqlName para compilar un nombre admitido por Windows PowerShell:

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

Descodificar un identificador

Descodificar un identificador de SQL Server de una ruta de PowerShell

Use el cmdlet Decode-Sqlname para reemplazar las codificaciones hexadecimales por caracteres representados por la codificación.

Ejemplos (descodificación)

Este ejemplo devuelve “Table:Test”:

Decode-SqlName "Table%3ATest"

Consulte también