- PR -

結果セットを返さないSELECT教えてください

1
投稿者投稿内容
会議室デビュー日: 2002/09/28
投稿数: 6
投稿日時: 2006-07-03 17:47
SQL Server2000 のストアドプロシージャ内でいくつかのSELECT文を使って
データのあるなしを@@ROWCOUNTで判断しています。

欲しい結果セットは最後のSELECT文が返すものなのですが
他のSELECT文のものまで返されてしまうので、
現在はクライアント側でDataReaderのNextResultで必要な結果セットを選択しています。

ストアドプロシージャが不要な結果セットを返さないようにするには
どうしたらよいでしょうか。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2006-07-03 19:04
変数に代入すればクライアントに結果セットは返されません。

コード:

declare @rowcount int

select @rowcount = count(*) from Products

if @rowcount > 0 begin

	...

end

未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2006-07-03 19:07
レコードの有無だけならこんなこともできる。

コード:
if exists (select * from Products) begin
  print 'レコードが存在する'
end else begin
  print 'レコードが存在しない'
end

会議室デビュー日: 2002/09/28
投稿数: 6
投稿日時: 2006-07-03 20:15
未記入様ありがとうございます。

特にEXISTSのこのような使い方は知りませんでした。
WHERE句でしか使ったことがなかったので、たいへん勉強になりました。

解決です。
1

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