[解決済み] SQL Action キーワード
2022-02-14 14:28:40
質問
SQL Action キーワードは何をするのですか? このキーワードをトリガで使用し、トリガが Insert、Delete、または Update によって呼び出されたかどうかを判断することは可能ですか?
どのように解決するのですか?
ACTIONは、ODBC関数呼び出しで使用するために予約されています。 これらの語は最小限のSQL文法を制約するものではありません。しかし、コアSQL文法をサポートするドライバとの互換性を確保するために、アプリケーションはこれらのキーワードの使用を避けるべきです。
特定のステップにトリガを作成するには、トリガ作成時にどのステップを指定すればよいのです。以下の例のように3つ全てを指定する必要はなく、ターゲットに応じて3つの選択肢を自由に組み合わせて指定することができます。
CREATE TRIGGER TriggerName
ON TableName
[FOR|AFTER|INSTEAD OF]
AFTER,UPDATE,DELETE
AS
...
もし、これらのうちどれがトリガーを呼び出したのかを判断する必要がある場合は、以下のように挿入されたテーブルと削除されたテーブルを確認する必要があります。
IF EXISTS (SELECT TOP 1 * FROM Inserted) AND NOT EXISTS (SELECT TOP 1 * FROM Deleted) --INSERT
...
IF EXISTS (SELECT TOP 1 * FROM Inserted) AND EXISTS (SELECT TOP 1 * FROM Deleted) --UPDATE
...
IF NOT EXISTS (SELECT TOP 1 * FROM Inserted) AND EXISTS (SELECT TOP 1 * FROM Deleted) --DELETE
...
関連
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】PL/SQL SELECTに複数のCOUNT(DISTINCT xxx)を指定すると、予期しない結果になる。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] mongoの外部キー?
-
[解決済み] エラー (ORA-00923: 期待された場所に FROM キーワードが見つかりませんでした)
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] 集計を行わずに行から列へピボット移動する
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない