Compartir a través de


Codificación y descodificación de identificadores de SQL Server

A veces, los identificadores delimitados por SQL Server contienen caracteres que no se admiten 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 obtener más información, visite SQL Server PowerShell.

Los caracteres no admitidos en los nombres de ruta de acceso de Windows PowerShell se pueden representar o codificar como el carácter "%" seguido del valor hexadecimal del patrón 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 Encode-Sqlname cmdlet toma un identificador de SQL Server como entrada y genera una cadena con todos los caracteres no admitidos por el lenguaje de Windows PowerShell codificado con %xx. El Decode-SqlName cmdlet toma un identificador de SQL Server codificado como entrada y devuelve el identificador original.

Limitaciones y restricciones

Los Encode-Sqlname cmdlets y Decode-Sqlname solo codifican o descodifican los caracteres permitidos en identificadores delimitados por SQL Server, pero no se admiten en las rutas de acceso de PowerShell. A continuación se muestran 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

Codificación de 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

Ejemplo (codificación)

En este ejemplo se especifica la versión codificada del : carácter (%3A):

Set-Location Table%3ATest

Como alternativa, puede usar Encode-Sqlname para crear un nombre compatible con Windows PowerShell:

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

Descodificar un identificador

Para descodificar un identificador de SQL Server desde una ruta de acceso de PowerShell, use el Decode-Sqlname cmdlet para reemplazar las codificaciones hexadecimales por los caracteres que representa la codificación.

Ejemplo (descodificación)

Este ejemplo devuelve “Table:Test”:

Decode-SqlName "Table%3ATest"