0

挿入を作成する UPDATE に基づいて、条件付きで OUTPUT 句を使用できるかどうかに興味があります。

たとえば、ブール値のチェックボックスを使用すると...

UPDATE myTable1 SET BinCheckBox = CASE WHEN BinCheckBox = '1' THEN 1 ELSE 0 END

OUTPUT

inserted.col1
inserted.col2

INTO

myTable2

WHERE myTable1.id = myFormField.id

...今、この部分は正常に動作します。しかし、myTable1 の行が実際に myTable1.BinCheckBox = 1 に更新された場合にのみ、OUTPUT を使用したいと考えています。

これはデータベーストリガーで動作していましたが、可能であればステートメントですべて発生させたいと思います。擬似コードのような...

UPDATE myTable 1 SET BinCheckBox = CASE WHEN BinCheckBox = '1' THEN 1 ELSE 0 END...AND IF BinCheckBox update to 1, then OUTPUT...

アドバイスありがとうございます

更新/回答

そのため、 を使用する代わりに、 と...OUTPUTを使用して行の削除を処理しています。そのようです...INSERT INTO myTable2 SELECTDELETE myTable2 FROM

UPDATE myTable1 SET BinCheckBox = CASE WHEN BinCheckBox = '1' THEN 1 ELSE 0 END

INSERT INTO myTable2 (col1,col2)
SELECT col1,col2
FROM myTable1 m1
WHERE (BinCheckBox = 1)
AND NOT EXISTS (SELECT m2.id FROM myTable2 m2
WHERE (m2.id=m1.id));

DELETE m2 FROM myTable2
JOIN myTable1 m1 on m2.id=m1.id
WHERE m1.id=,y.id AND m1.BinCheckBox = 0;

これはうまくいくようです。

4

0 に答える 0