Шифрование и расшифровка идентификаторов SQL Server
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)
Идентификаторы SQL Server с разделителями иногда содержат символы, не поддерживаемые в путях Windows PowerShell. Эти символы можно задавать путем кодирования их шестнадцатеричных значений.
Примечание.
Существует два модуля SQL Server PowerShell — SqlServer и SQLPS.
Самым актуальным модулем PowerShell является модуль SqlServer.
Модуль SQLPS входит в состав установки SQL Server (для обеспечения обратной совместимости), но больше не обновляется.
Модуль SqlServer содержит обновленные версии командлетов в SQLPS и новые командлеты для поддержки последних функций SQL.
Установите модуль SqlServer из коллекции PowerShell.
Подробные сведения см. в статье SQL Server 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"
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по