Compartilhar via


Codificar e decodificar identificadores do SQL Server

Os identificadores delimitados pelo SQL Server às vezes contêm caracteres que não têm suporte em caminhos do Windows PowerShell. Esses caracteres podem ser especificados codificando seus valores hexadecimais.

Observação

Há dois módulos do SQL Server PowerShell; SqlServer e SQLPS.

O módulo SqlServer é o módulo atual do PowerShell a ser usado.

O módulo SQLPS está incluído na instalação do SQL Server (para compatibilidade com versões anteriores), mas não está mais sendo atualizado.

O módulo do SqlServer contém versões atualizadas dos cmdlets no SQLPS e inclui novos cmdlets para dar suporte aos recursos mais recentes do SQL.

Instale o módulo SqlServer da Galeria do PowerShell.

Para obter mais informações, visite o SQL Server PowerShell.

Caracteres sem suporte em nomes de caminho do Windows PowerShell podem ser representados ou codificados como o caractere "%" seguido pelo valor hexadecimal para o padrão de bit que representa o caractere, como em "**%**xx". A codificação sempre pode ser usada para manipular caracteres não suportados em caminhos do Windows PowerShell.

O Encode-Sqlname cmdlet usa um identificador do SQL Server como entrada e gera uma cadeia de caracteres com todos os caracteres não compatíveis com o idioma do Windows PowerShell codificado com %xx. O Decode-SqlName cmdlet usa um identificador do SQL Server codificado como entrada e retorna o identificador original.

Limitações e restrições

Os Encode-Sqlname cmdlets e Decode-Sqlname os cmdlets codificam ou decodificam apenas os caracteres permitidos em identificadores delimitados pelo SQL Server, mas não têm suporte em caminhos do PowerShell. A seguir estão os caracteres codificados e Encode-SqlName decodificados por Decode-SqlName:

Caractere \ / : % < > * ? [ ] |
Codificação hexadecimal %5C %2F %3A %25 %3C %3E %2A %3F %5B %5D %7C

Codificar um identificador

Para codificar um identificadores do SQL Server em um caminho PowerShell

  • Use um destes dois métodos para codificar um identificador do SQL Server:
    • Especifique o código hexadecimal para o caractere sem suporte que usa a sintaxe %XX, onde XX é o código hexadecimal.
    • Passe o identificador como uma cadeia de caracteres entre aspas para o cmdlet Encode-Sqlname

Exemplo (codificação)

Este exemplo especifica a versão codificada do : caractere (%3A):

Set-Location Table%3ATest

Como alternativa, você pode usar Encode-Sqlname para criar um nome compatível com o Windows PowerShell:

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

Decodificar um identificador

Para decodificar um identificador do SQL Server de um caminho do PowerShell, use o Decode-Sqlname cmdlet para substituir as codificações hexadecimal pelos caracteres que a codificação representa.

Exemplo (decodificação)

Este exemplo retorna "Table:Test":

Decode-SqlName "Table%3ATest"