Codificar y descodificar identificadores de SQL Server

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.

  1. Antes de empezar: Limitaciones y restricciones

  2. Para procesar los caracteres especiales: Codificar un identificador, Descodificar un identificador

Antes de empezar

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 de Encode-Sqlname y de 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

[Arriba]

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.

    • Pase 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")

[Arriba]

Descodificar un identificador

Descodificar un identificador de SQL Server de una ruta de PowerShell

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

Ejemplos (descodificación)

Este ejemplo devuelve "Table:Test":

Decode-SqlName "Table%3ATest"

[Arriba]

Vea también

Conceptos

Identificadores de SQL Server en PowerShell

Proveedor de PowerShell de SQL Server

SQL Server PowerShell