SQL
のクエリを多く実行し、結果を返すこのストアドプロシージャがあります。行を返すクエリの結果のみを返すにはどうすればよいですか?ストアドプロシージャ - 行が0より大きい場合にのみ返される
BEGIN
DECLARE @Query varchar(4000)
DECLARE cur CURSOR FOR SELECT SQLSyntax FROM tblChecks
OPEN cur
FETCH NEXT FROM cur INTO @Query
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC (@Query)
FETCH NEXT FROM cur INTO @Query
END
CLOSE cur
DEALLOCATE cur
END
あなたは条件付きで各クエリを実行する必要があり、空の結果セットを返す避けるために...
各クエリは、その結果の同じフィールドを返しますか? –
なぜアプリケーションは正しくrowcount = 0の結果セットを破棄しないのですか? SQL Serverは、あなたが投げようとしているいくつかの動的SQLが0または> 0の行を生成することを前もって知っていません。それを行う唯一の方法は、実際に#tempテーブル内のすべての情報を収集し、それを1つとして返すか(または再びループする)、ループ内の各クエリを2回実行することです、カウントが> 0の場合は*もう一度*となります)。 –