-4

BarcodeFormat列の値を変更するトリガーを作りたいです。

それでトリガーを作ったのですが、うまくいくかどうかわかりません。

コードは次のとおりです。

CREATE trigger tr_changedUPC
on Item
after update
as update Item
SET BarcodeFormat=(case when(ISNUMERIC(ItemLookupCode)=1) AND
(LEN(ItemLookupCode)=12) AND (NOT(BarcodeFormat=9)) then 9 else 6 end) from inserted

ご覧のとおり、アイテムテーブルでトリガーを作成しています。column の値が変わったら、 column のItem.ItemLookupCode値も変えたいですItem.BarcodeFormat

この SQL コードはまだ実行していません。なので、このコードでよろしければ見ていただきたいです。

4

1 に答える 1

1

このSQL Fiddleによると、

CREATE trigger tr_changedUPC
on Item
after update
as update Item
SET BarcodeFormat=(case when(ISNUMERIC(ItemLookupCode)=1) AND
(LEN(ItemLookupCode)=12) AND (NOT(BarcodeFormat=9)) then 9 else 6 end) from inserted

列があいまいさを少なくするために、この方法でコードを少し改善する必要があります。

CREATE TRIGGER tr_changedUPC
    on Item
    after UPDATE
    as UPDATE Item
    SET Item.BarcodeFormat=(case when(ISNUMERIC(Item.ItemLookupCode)=1) AND
    (LEN(Item.ItemLookupCode)=12) AND (NOT(Item.BarcodeFormat=9)) then 9 else 6 end) from inserted;

列「BarCodeFormat」の値が列「ItemLookupCode」の更新に応じて更新されるため、フィドルの結果によると、コードは問題ありません。

于 2013-10-28T22:08:45.453 に答える