trapemiyaの日記

hatenablogが新しくなったんで新規一転また2019年1月からちょこちょこ書いてます。C#中心のプログラミングに関するお話です。

OPENQUERYの結果を変数に入れる

OPENQUERYの結果を変数に入れるには、次のようにOUTPUTを付けた変数を定義し、それに渡します。

declare @rowcnt	int;

set @sqlwk = 'select @rowcnt = count(*) from openquery(edpsrd, ''
select 契約番号
from mine.dbo.契約テーブル
where  契約番号 = ''''' + @契約番号 + ''''''
+ ''')';

EXEC sp_executesql @sqlwk, N'@rowcnt int output', @rowcnt output;

outputはoutと省略することもできます。

次のエラーが出たら、outputを付けるのを忘れています。

仮パラメーター "XXX" は OUTPUT パラメーターとして宣言されませんでしたが、実パラメーターによって要求された出力に渡されました。