SQL Serverにトリガーの後にトリガーがあることがわかりました。また、挿入されたペスード・テーブルの値を変更することはできません。私のテーブルに挿入されるデータをチェックし、データが自分の制約に違反した場合、これらの値をデフォルト値に変更する必要があります。どうすればいいですか?挿入後に値を更新するのはどうですか?しかし、テーブルにユニークな主キーまたは列がない場合は、挿入した行を見つけて更新するにはどうすればよいですか?T-SQL挿入前の値を変更する方法
4
A
答えて
11
基本的には、INSTEAD OF INSERT
トリガーで、あなたが探しているものを達成することができます - ちょうどだからあなたのトリガが見える、INSERTED
擬似テーブルからデータを読み出し、それを変更し、テーブル
に挿入します
CREATE TRIGGER YourTrigger ON dbo.YourTable
INSTEAD OF INSERT
AS
SET NOCOUNT ON
-- do the INSERT based on the INSERTED pseudo table, modify data as needed
INSERT INTO dbo.YourTable(Col1, Col2, ....., ColN)
SELECT
Col1, 2 * Col2, ....., N * ColN
FROM
INSERTED
もちろん、次のように追加することもできます。例えば、SELECT .... FROM INSERTED
という文にWHERE
節の形式でチェックします。特定の行を無視する - 可能性は無限大です!
+0
ありがとうございました。それは実際に動作します。 :-) – tmj
関連する問題
- 1. TSQL - 挿入する前に別の列の値に対して値をチェックする方法
- 2. TSQL:[挿入
- 3. ダイナミックテーブルTSQLを挿入
- 4. ユニットテストで値を挿入する方法
- 5. TSQLプログラムファイル環境変数を使用する一括挿入
- 6. Excelで挿入した画像の名前を変更する
- 7. Javascriptの変更URLパラメータを履歴に挿入する前に
- 8. 挿入/更新トリガをデバッグして値の挿入/更新を表示する方法
- 9. TSQL - SourceTableからTargetTableへの値の挿入または更新(削除不要)
- 10. クエリに変数値を挿入する方法は?
- 11. 入力値からデータベースに値を挿入する方法は?
- 12. javascriptループで複数の入力値を変更する方法
- 13. 挿入クエリの前に変数にinsert_idを取得する方法
- 14. 挿入名前と値のペア
- 15. NHibernateで挿入する前にIDをインクリメントする方法
- 16. jQueryで要素の前にチェックボックスを挿入する方法
- 17. SQL Serverの事前挿入/更新トリガー
- 18. DataRowの値を変更する方法
- 19. 非同一性テーブルを挿入するTSQLのトリガー
- 20. TADOCommandで挿入/変更されたレコードの数をチェックする方法は?
- 21. カッサンドラ:名前なしで行を挿入する方法
- 22. アクセスデータベースの値をビジュアルベーシック2010のコンボボックスに挿入する方法
- 23. sqliteで挿入トリガの前に検証する方法
- 24. TSQLのXML列に対する複数のノードの挿入
- 25. JSF - データベーステーブルに多くの値を挿入する方法
- 26. MVCのテーブルに固定値を挿入する方法
- 27. extjsのストアに値を挿入する方法
- 28. Sencha Touchのピッカーに値を挿入する方法は?
- 29. PHP:ラジオボタンの値をMySqlデータベースに挿入する方法
- 30. アセンブリー80386の配列に値を挿入する方法は?
「INSTEAD OF」トリガのポイントは、その操作(「INSERT」など)を「取得」して、通常の操作ではなく*何かを行うことができることです。そこで、値を読み込み、変更して、INSERTの中でINSERTを呼び出して、変更されたデータを挿入することができます。 –
この問題は、テーブル構造が変更された場合、トリガーも同様です。代わりにOracleでは、「挿入された」オブジェクト(「new」)と同等のものを更新することができます。これははるかに論理的です。 –