Поделиться через


Шифрование и расшифровка идентификаторов SQL Server

Идентификаторы SQL Server с разделителями иногда содержат символы, не поддерживаемые в путях Windows PowerShell. Эти символы можно задавать путем кодирования их шестнадцатеричных значений.

  1. Перед началом работы: Ограничения и ограничения

  2. Обработка специальных символов: кодирование идентификатора, декодирование идентификатора

Перед началом

Символы, неподдерживаемые в именах путей Windows PowerShell, могут быть представлены или закодированы в виде символа "%", за которым следует шестнадцатеричное значение для битового шаблона, представляющего символ, например "**%**xx". Для обработки символов, неподдерживаемых в обозначениях путей Windows PowerShell, всегда можно использовать кодировку.

Командлет Encode-SqlName принимает в качестве входных данных идентификатор SQL Server. Он возвращает строку, в которой все символы, не поддерживаемые языком Windows PowerShell, закодированы в виде «%xx». Командлет Decode-SqlName принимает в качестве входных данных закодированный идентификатор SQL Server и возвращает исходный идентификатор.

Ограничения

Командлеты Encode-Sqlname и Decode-Sqlname обеспечивают только кодирование или декодирование символов, допустимых в идентификаторах SQL Server с разделителями, но не поддерживаемых в путях PowerShell. Символы, кодируемые командлетом Encode-SqlName и декодируемые командлетом Decode-SqlName, перечислены ниже.

Символ \ / : % < > * ? [ ] |
Шестнадцатеричная кодировка %5C %2F %3A 25% %3C %3E %2A %3F %5B %5D %7C

кодирование идентификатора

Кодирование идентификатора SQL Server в пути PowerShell

  • Используйте один из двух методов для кодирования идентификатора SQL Server:

    • Укажите шестнадцатеричный код для неподдерживаемого символа, используя синтаксис %XX, где XX — шестнадцатеричный код.

    • Передайте идентификатор в виде строки, заключенной в кавычки, в командлет Encode-Sqlname

Примеры (кодирование)

В этом примере указана закодированная версия символа «:» (%3A):

Set-Location Table%3ATest  

Можно также использовать Encode-SqlName для формирования имени, поддерживаемого Windows PowerShell:

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

декодирование идентификатора

Декодирование идентификатора SQL Server из пути PowerShell

Используйте командлет Decode-Sqlname для замены шестнадцатеричных кодов символами, представленными этими кодами.

Примеры (декодирование)

В этом примере происходит возврат строки Table:Test:

Decode-SqlName "Table%3ATest"  

См. также

Идентификаторы SQL Server в PowerShell
Поставщик SQL Server PowerShell
SQL Server PowerShell