Jag förstår hur COLUMNS_UPDATED opererar och fungerar på de första 8 bitarna. Men sedan? Om man vill undersöka tex om kolumn 3, 11 och 15 uppdaterats, hur gör man då?
Jag förstår hur COLUMNS_UPDATED opererar och fungerar på de första 8 bitarna. Men sedan? Om man vill undersöka tex om kolumn 3, 11 och 15 uppdaterats, hur gör man då?
Skulle gärna se ett förklarande exempel!
CREATE TRIGGER updEmployeeData
ON employeeData
FOR update AS
-- Check whether columns 2, 3 or 4 has been updated. If any or
all of
-- columns 2, 3 or 4 have been changed, create an audit record.
-- The bitmask is: power(2,(2-1))+power(2,(3-1))+power(2,(4-1)) =
14
-- To check if all columns 2, 3, and 4 are updated, use = 14 in
place of
-- >0 (below).
IF (COLUMNS_UPDATED() & 14) > 0
-- Use IF (COLUMNS_UPDATED() & 14) = 14 to see if all of columns 2, 3,
-- and 4 are updated.
BEGIN
-- Audit OLD record
Kan du visa ett exempel för högre bitar? Det enda exempel jag har sett, som jag inte förstod, ägnade sig åt att på något vis flytta de 8 tecknen i sidled ...? :q Dvs på något sätt bortsåg man ifrån att det var bit 9-15 och behandlade det som bit 0-8 - fast ändå inte... Min beskrivningen är hemsk för exemplet gick inte hem, det var bara rörigt...
LarsG skrev:
sen så kan du kombinera flera columns_updated med and och or
Om du vill testa på kolumnera 3, 11, 15 så blir det 2^2 + 2^10 + 2^14 = 17412. Jag har bara läst dokumentationen och där står att man kan ange ett heltal och jag ser inte att det skulle vara begränsat till en tinyint.
252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849