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


Шифрование и расшифровка идентификаторов 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