古いバージョンのSybaseのトリガーに何かを実装するのに頭が痛いだけで、誰かが助けてくれるかどうか疑問に思いました。簡単に言えば、影響を受けるレコードごとに別の sproc を呼び出すトリガーを作成したいと考えています (挿入、削除、または両方 [更新])。
T-SQL(SQL Server)でこれを行う1つの方法は、カーソルを使用することですが、Webで見つけたカーソルの例はどれも実際にSybase ASA 6.0.4で動作しないようです.T-SQLが嫌いです.または、コンパイルされているように見えますが、通常は何もしません (病理学的に単純で不自然なシナリオであっても)。
基本的に、すべての「挿入された」テーブル レコード (存在する場合) をループし、 Exec MySproc (inserted.keyid)ごとにループしてから、すべての「削除された」テーブル レコード (存在する場合) をループし、それぞれについてもう一度ループします。 1 つのExec MySproc (deleted.keyid)。
この種のことを行う例、またはASA 6で読み取り専用カーソルを使用する例はありますか? オンラインマニュアルには単純なカーソルの例があるようですが、実際にはその例を実際に機能させることができませんでした。他の sproc をトリガーに展開することもできます (実際にはそれほど複雑ではありません) が、「挿入されたものから選択...」タイプのステートメントの一部として実行するには複雑すぎます。実際には、それ自体が数行のコードです。 . したがって、とにかくカーソルが必要だと思います。
EDIT : (29/12/09) - 必死になって sproc コードを展開しましたが、Sybase ASA 6 で実際に動作するカーソルの例が欲しいのです。簡単に広げられます。だから私は賞金のためにこれを投げます -誰かが私に実用的な例を与えることができますか? :-)