編碼及解碼 SQL Server 識別碼

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server 分隔識別碼有時會包含 Windows PowerShell 路徑中不支援的字元。 編碼這些字元的十六進位值,就可以指定這些字元。

注意

有兩個 SQL Server PowerShell 模組:SqlServerSQLPS

SqlServer 模組是要使用的最新 PowerShell 模組。

SQLPS 模組隨附於 SQL Server 安裝 (用於回溯相容性),但不再更新。

SqlServer 模組包含 SQLPS 中 Cmdlet 的更新版本,且加入新的 Cmdlet 以支援 SQL 最新功能。

PowerShell 資源庫安裝 SqlServer 模組。

如需詳細資訊,請參閱 SQL Server PowerShell

Windows PowerShell 路徑名稱中不支援的字元可以表示或編碼為 "%" 字元,後面緊接著代表此字元之位元模式的十六進位值,例如 "**%**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 所解碼的字元:

字元 \ / % < > * ? [ ] |
十六進位編碼 %5C %2F %3A %25 %3C %3E %2A %3F %5B %5D %7C

編碼識別碼

編碼 PowerShell 路徑中的 SQL Server 識別碼

  • 使用兩種方法的其中一種來編碼 SQL Server 識別碼:
    • 使用語法 %XX 指定不支援字元的十六進位代碼,其中 XX 是十六進位代碼。
    • 識別碼會以加上引號的字串形式傳遞給 Encode-Sqlname Cmdlet

範例 (編碼)

此範例指定 ":" 字元 (%3A) 的編碼版本:

Set-Location Table%3ATest

您也可以使用 Encode-SqlName 來建立 Windows PowerShell 所支援的名稱:

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

解碼識別碼

解碼 PowerShell 路徑中的 SQL Server 識別碼

Decode-Sqlname Cmdlet 可用來將十六進位編碼取代為該編碼所代表的字元。

範例 (解碼)

此範例會傳回 "Table:Test":

Decode-SqlName "Table%3ATest"

另請參閱