Шифрование и расшифровка идентификаторов SQL Server
Идентификаторы SQL Server с разделителями иногда содержат символы, не поддерживаемые в путях Windows PowerShell. Эти символы можно задавать путем кодирования их шестнадцатеричных значений.
Перед началом работы выполните следующие действия. Ограничения
Обработка специальных символов: Кодирование идентификатора, Декодирование идентификатора
Перед началом
Символы, неподдерживаемые в именах путей 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