SQL Server で区切られた識別子には、Windows PowerShell パスでサポートされていない文字が含まれている場合があります。 これらの文字は、16 進数値にエンコードすることによって指定できます。
注
SQL Server PowerShell モジュールには SqlServer と SQLPS の 2 つがあります。
SqlServer モジュールは、使用する現在の PowerShell モジュールです。
SQLPS モジュールは、(後方互換性のため) SQL Server のインストールに含まれていますが、今後更新されることはありません。
SqlServer モジュールには、SQLPS のコマンドレットの更新バージョンに加え、最新の SQL 機能をサポートする新しいコマンドレットが含まれています。
PowerShell ギャラリーから SqlServer モジュールをインストールします。
詳細については、 SQL Server PowerShell を参照してください。
Windows PowerShell パス名でサポートされていない文字は、"%" 文字の後に、文字を表すビット パターンの 16 進数の値 ("**%**xx" のように) として表すかエンコードできます。 エンコードは、Windows PowerShell パスでサポートされない文字を処理する場合にいつでも使用できます。
Encode-Sqlname
コマンドレットは、SQL Server 識別子を入力として受け取り、%xx
でエンコードされた Windows PowerShell 言語でサポートされていないすべての文字を含む文字列を出力します。
Decode-SqlName
コマンドレットは、エンコードされた SQL Server 識別子を入力として受け取り、元の識別子を返します。
制限事項と制約事項
Encode-Sqlname
コマンドレットと Decode-Sqlname
コマンドレットは、SQL Server で区切られた識別子で許可されている文字のみをエンコードまたはデコードしますが、PowerShell パスではサポートされていません。
Encode-SqlName
でエンコードされ、Decode-SqlName
によってデコードされる文字を次に示します。
文字 | \ | / | : | % | < | > | * | ? | [ | ] | | |
---|---|---|---|---|---|---|---|---|---|---|---|
16 進エンコード | %5C | %2F | %3A | %25 | %3C | %3E | %2A | %3F | %5B | %5D | %7C |
識別子をエンコードする
PowerShell パス内で SQL Server 識別子をエンコードするには
- SQL Server 識別子をエンコードするには、次の 2 つの方法のいずれかを使用します。
- サポートされていない文字の 16 進数コードを、%XX という構文 (XX は 16 進数コード) を使用して指定します。
- 識別子を引用符で囲まれた文字列として
Encode-Sqlname
コマンドレットに渡します。
例 (エンコード)
次の使用例は、エンコードされた :
文字 (%3A) を指定します。
Set-Location Table%3ATest
または、 Encode-Sqlname
を使用して、Windows PowerShell でサポートされている名前を作成することもできます。
Set-Location (Encode-SqlName "Table:Test")
識別子をデコードする
PowerShell パスから SQL Server 識別子をデコードするには、 Decode-Sqlname
コマンドレットを使用して、16 進エンコードをエンコードで表す文字に置き換えます。
例 (デコード)
次の例では、"Table:Test" を返します。
Decode-SqlName "Table%3ATest"