Condividi tramite


Codificare e decodificare gli identificatori di SQL Server

Gli identificatori delimitati da SQL Server in alcuni casi contengono caratteri non supportati nei percorsi di Windows PowerShell. È possibile specificare questi caratteri codificando i valori esadecimali.

Annotazioni

Sono disponibili due moduli di SQL Server PowerShell. SqlServer e SQLPS.

Il modulo SqlServer è il modulo di PowerShell corrente da usare.

Il modulo SQLPS è incluso nell'installazione di SQL Server (per compatibilità con le versioni precedenti) ma non viene più aggiornato.

Il modulo SqlServer contiene versioni aggiornate dei cmdlet in SQLPS e include nuovi cmdlet per supportare le funzionalità SQL più recenti.

Installare il modulo SqlServer da PowerShell Gallery.

Per altre informazioni, vedere SQL Server PowerShell.

I caratteri non supportati nei nomi dei percorsi di Windows PowerShell possono essere rappresentati o codificati come carattere "%" seguito dal valore esadecimale per il criterio di bit che rappresenta il carattere, come in "**%**xx". La codifica può sempre essere utilizzata per gestire i caratteri non supportati nei percorsi di Windows PowerShell.

Il Encode-Sqlname cmdlet accetta un identificatore di SQL Server come input e restituisce una stringa con tutti i caratteri non supportati dal linguaggio di Windows PowerShell codificato con %xx. Il Decode-SqlName cmdlet accetta come input un identificatore di SQL Server codificato e restituisce l'identificatore originale.

Limitazioni e restrizioni

I Encode-Sqlname cmdlet e Decode-Sqlname codificano o decodificano solo i caratteri consentiti negli identificatori delimitati da SQL Server, ma non supportati nei percorsi di PowerShell. Di seguito sono riportati i caratteri codificati da Encode-SqlName e decodificati da Decode-SqlName:

Carattere \ / : % < > * ? [ ] |
Codifica esadecimale %5C %2F %3A 25% %3C %3E %2A %3F %5B %5D %7C

Codificare un identificatore

Per codificare un identificatore di SQL Server in un percorso di PowerShell

  • Usare uno dei due metodi per codificare un identificatore di SQL Server:
    • Specificare il codice esadecimale per il carattere non supportato utilizzando la sintassi% XX, dove XX rappresenta il codice esadecimale.
    • Passare l'identificatore come stringa tra virgolette al cmdlet Encode-Sqlname

Esempio (codifica)

In questo esempio viene specificata la versione codificata del : carattere (%3A):

Set-Location Table%3ATest

In alternativa, è possibile usare Encode-Sqlname per compilare un nome supportato da Windows PowerShell:

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

Decodificare un identificatore

Per decodificare un identificatore di SQL Server da un percorso di PowerShell, usare il Decode-Sqlname cmdlet per sostituire le codifiche esadecimali con i caratteri rappresentato dalla codifica.

Esempio (decodifica)

In questo esempio viene restituito "Table:Test":

Decode-SqlName "Table%3ATest"