- PR -

OPENROWSETクエリの中のプロシージャのリターン値について

1
投稿者投稿内容
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-09-14 23:43
コード:

declare @Command nvarchar(4000)
declare @path nvarchar(4000)
declare @rt int
DECLARE @ParmDefinition nvarchar(50);
set @ParmDefinition = N'@rtout int OUTPUT'
set @path = N'dir c:\'
SET @Command =
'SELECT [Name] '+
'FROM '+
'OPENROWSET(''SQLOLEDB'', ''' + @@SERVERNAME + '''; ''sa''; ''password'', ' +
' ''EXEC MYDB.dbo.nsp_RunXpCmdShell ''' +
QUOTENAME(REPLACE(@Path, '''', ''''''), '''') +
''' '') AS a '
EXEC sp_executesql @Command,@ParmDefinition,@rtout = @rt OUTPUT
select @rt,@Command



私はこんなコードを書いてみました。

OPENROWSETの中に、さらに別のプロシージャを呼び出しています。

このnsp_RunXpCmdShellプロシージャのリターン値はあります。(正常0、異常‐1)となります。

現在の書き方だと、@rtの戻り値はNULLになってします。理由はわかりますが、sp_executesqlの実行対象はSELECT文となり、直接のプロシージャではありません。

どうやって、このプロシージャのリターン値を取れるでしょうか。

[ メッセージ編集済み 編集者: yangjiayi 編集日時 2008-09-14 23:44 ]

[ メッセージ編集済み 編集者: yangjiayi 編集日時 2008-09-14 23:45 ]
1

スキルアップ/キャリアアップ(JOB@IT)