私は、挿入ステートメントの条件をチェックするこのトリガーを持っています。それは正しいメッセージを表示しますが、値を追加しません(msgが "正常に追加された"ことを示していますが)。誰もが問題があることを知っていますか?トリガーが新しい値をテーブルに挿入しないのはなぜですか?
insert into messages values('2017-05-01', 'how are you', '426564774', '201827364')
は「成功しまし追加」を返す、とテーブルに追加する必要がありますが、それだけでメッセージを示しています。たとえば
CREATE TRIGGER trg_SentMessage_Insteadof
ON messages
INSTEAD OF INSERT
AS
BEGIN
IF (EXISTS (SELECT inserted.*
FROM inserted
LEFT OUTER JOIN matchs AS m ON (inserted.sentFrom = m.userID1
AND inserted.sentTo = m.userID2)
OR (inserted.sentFrom = m.userID2
AND inserted.sentTo = m.userID1)
WHERE (m.interesting1 = 0 AND m.interesting2 = 0)))
PRINT 'Succesfully added'
ELSE
BEGIN
ROLLBACK TRANSACTION
PRINT 'You can't do that!'
END
END
は、私が実行したとき。
トリガーの代わりに宣言する場合は、挿入する必要があります。とにかくトリガーの代わりにする必要はありません。そして、左の結合は 'where'のために内部結合です。 –
私はwhere節の条件を必要とします:\、しかし、あなたは私が私の代わりに必要としないことは何ですか?もし私が必要なものがあれば、挿入された値をどうやってチェックすることができますか? – reeena11
「挿入後」が必要です。挿入後、挿入が完了する前に発生します。 'の代わりに'が使われていますトリガーで何が行われたのですか? –