SQL Server 식별자 인코딩 및 디코딩

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)

SQL Server 구분 식별자에 Windows PowerShell 경로 이름에서 지원되지 않는 문자가 사용되는 경우가 있습니다. 이러한 문자는 16진수 값을 인코딩하여 지정할 수 있습니다.

참고 항목

SQL Server PowerShell 모듈에는 SqlServerSQLPS의 두 가지가 있습니다.

SqlServer 모듈이 사용할 현재 PowerShell 모듈입니다.

SQLPS 모듈은 (이전 버전과의 호환성을 위해) SQL Server 설치에 포함되어 있지만 더 이상 업데이트되지 않습니다.

SqlServer 모듈은 SQLPS에 업데이트된 버전의 cmdlet이 포함되어 있으며, 최신 SQL 기능을 지원하는 새로운 cmdlet이 포함되어 있습니다.

PowerShell 갤러리에서 SqlServer 모듈을 설치합니다.

자세한 내용은 SQL Server PowerShell을 참조하세요.

Windows PowerShell 경로 이름에 지원되지 않는 문자는 “%” 문자 뒤에 해당 문자를 나타내는 비트 패턴의 16진수 값(예: “**%**xx”)을 사용하여 표현하거나 인코딩할 수 있습니다. 인코딩은 항상 Windows PowerShell 경로에서 지원되지 않는 문자를 처리하는 데 사용할 수 있습니다.

Encode-SqlName cmdlet은 SQL Server 식별자를 입력으로 사용합니다. "%xx"로 인코딩된 Windows PowerShell 언어에서 지원되지 않는 모든 문자가 포함된 문자열을 출력합니다. Decode-SqlName cmdlet은 인코딩된 SQL Server 식별자를 입력으로 사용하고 원래 식별자를 반환합니다.

제한 사항

Encode-SqlnameDecode-Sqlname cmdlet은 SQL Server 구분 식별자에서 허용되지만 PowerShell 경로에서 지원되지 않는 문자만 인코딩하거나 디코딩합니다. 다음은 Encode-SqlName으로 인코딩되고 Decode-SqlName에서 디코딩된 문자입니다.

문자 \ / : % < > * ? [ ] |
16진수 인코딩 %5C %2F %3A 25% %3C %3E %2A %3F %5B %5D %7C

식별자 인코딩

PowerShell 경로에서 SQL Server 식별자를 인코딩하려면

  • 다음의 두 가지 방법 중 하나를 사용하여 SQL Server 식별자를 인코딩합니다.
    • XX가 16진수 코드인 %XX 구문을 사용하여 지원되지 않는 문자의 16진수 코드를 지정합니다.
    • 따옴표로 묶인 식별자를 Encode-Sqlname cmdlet에 전달

예(인코딩)

이 예에서는 ":" 문자(%3A)의 인코딩된 버전을 지정합니다.

Set-Location Table%3ATest

또는 Encode-SqlName을 사용하여 Windows PowerShell에서 지원하는 이름을 빌드할 수 있습니다.

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

식별자 디코딩

PowerShell 경로에서 SQL Server 식별자를 디코딩하려면

Decode-Sqlname cmdlet을 사용하여 16진수 인코딩을 인코딩이 나타내는 문자로 바꿉니다.

예(디코딩)

이 예에서는 "Table:Test"를 반환합니다.

Decode-SqlName "Table%3ATest"

참고 항목