Codificar e decodificar identificadores do SQL Server

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

Os identificadores delimitados do SQL Server às vezes contêm caracteres que não são compatíveis com 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, confira SQL Server PowerShell.

Os caracteres sem suporte em nomes de caminho do Windows PowerShell podem ser representados, ou codificados, como o caractere "%" seguido pelo valor hexadecimal do padrão de bits 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 cmdlet Encode-SqlName usa um identificador do SQL Server como entrada. Ele produz uma cadeia de caracteres com todos os caracteres não suportados pela linguagem Windows PowerShell codificada com "%xx". O cmdlet Decode-SqlName usa um identificador codificado do SQL Server como entrada e retorna o identificador original.

Limitações e Restrições

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

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

Codificando 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.
    • Passar o identificador como uma cadeia de caracteres entre aspas para o cmdlet Encode-Sqlname

Exemplos (codificação)

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

Set-Location Table%3ATest

Como alternativa, use Encode-SqlName para criar um nome com suporte no Windows PowerShell:

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

Decodificando um Identificador

Para decodificar um identificador do SQL Server de um caminho do PowerShell

Use o cmdlet Decode-Sqlname para substituir as codificações hexadecimais pelos caracteres representados pela codificação.

Exemplos (decodificação)

Este exemplo retorna "Table:Test":

Decode-SqlName "Table%3ATest"

Consulte Também