いつカーソルを使用するのが適切なのかわかりません。
一部のテーブルを更新する特定のストアド プロシージャが実行された後に、メールを送信する必要があります。だからもし
table1.field1 = "value" and
(select count(*)
from table1 join table2
on table2.table1_id = table1.id) > 20
次に、これらの条件を満たすテーブル 1 内のすべてに対して電子メールを送信する必要があります。メールには table1.field2 と table2.field3 などを含める必要があります...
これを行う唯一の方法は、これらの条件を満たす table1 の行のデータセットを取得し、カーソルを使用してそれを処理することです。以前に SQL Server から電子メールを送信したことがなく、オプションもわかりません... カーソルを使用したことがありません (方法は理解していますが)。
ありがとう。
編集:
whileループを使用:だから...おそらく必要なすべての情報を一時テーブルに押し込み(select * from table1 where (conditions))、結果のデータの各行を通過するwhileループを開始したい私の一時テーブルに設定します。(WHILE i = 1 to (select count(*) from #temp) / 電子メールを組み立てる 電子メールを送信する / 次へ)... 次に、#temp のどの行を参照/ポイントするのが最善の方法ですか?ループの反復ごとに使用しますか? #temp に ID(1,1) を指定するか、row_number() を使用するだけです...よね?私は推測する?しかし、これを行うことで自分のカーソルをプログラムしようとしているように思えますか? そして、@subject = (select 'Site ' & field2 & ' has a value of ' & field1 from #temp where temp_id_or_row_number = @i) を設定し、ループごとに @i をインクリメントするとしましょう...?