シングルクォート内で変数を展開する

T-SQLで、シングルクォート内で変数を展開するに上手いやり方が解らない・・・
例えば以下のようなクエリ。

[sql]
DECLARE @d nvarchar(50)
DECLARE @cmd nvarchar(100)

SET @d = N’C:\database\backup’
SET @cmd = N’dir ‘ + @d + ‘ /b’
exec master..xp_cmdshell @cmd
[/sql]

効率悪いと思うけど、1時間ほどググってこれで落ち着いたが正しいのかな?
個人的には、以下のように書きたい。書いたらスッキリすると思う。
[sql]
DECLARE @d nvarchar(50)
SET @d = N’C:\database\backup’
exec master..xp_cmdshell ‘dir @{d} /b’
— とか
exec master..xp_cmdshell ”’dir’ + @d + ‘ /b”’
[/sql]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です