Despre dna Sql Trigger

voturi
-4

Vreau să fac un declanșator pentru a modifica valorile BarcodeFormatcoloanei.

Așa că am făcut un declanșator, dar nu sunt sigur dacă acesta funcționează.

Aici este codul:

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

După cum puteți vedea, am face un declanșator la postul de masă. În cazul în care valoarea coloanei se Item.ItemLookupCodeschimbă, vreau să schimbe valoarea coloanei Item.BarcodeFormat, de asemenea.

Nu a executat încă acest cod SQL. Așa că vreau să vedeți acest cod, dacă este bine.

Întrebat 28/10/2013 la 19:30
de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Conform acestei 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

codul ar trebui să fie un pic mai bună în acest fel, pentru a face coloane mai puțin ambiguu:

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;

Codul dvs. este bine, în conformitate cu rezultatele cetera, deoarece valorile din coloana „BarCodeFormat“ sunt actualizate în mod corespunzător cu actualizarea din coloana „ItemLookupCode“.

Publicat 28/10/2013 la 20:08
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more