---
title: "SQL Server 2000 och COLUMNS_UPDATED"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/168881-sql-server-2000-och-columns-updated"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "aasah"
published: "2008-02-10T13:15:12.000Z"
updated: "2008-02-10T16:44:01.000Z"
replies: 5
views: 331
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/168881-sql-server-2000-och-columns-updated"
---

# SQL Server 2000 och COLUMNS_UPDATED

## #1 — aasah, 2008-02-10T13:15Z

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!

Permalänk: https://www.webforum.nu/p/168881

## #2 — Fredde Mannen, 2008-02-10T13:53Z

> **aasah skrev:**
>
> 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
```

Hittat på: <http://database.ittoolbox.com/groups/technical-functional/sql-server-l/columns_updated-100440>

Kanske kan vara något du kan ha hjälp av?

Permalänk: https://www.webforum.nu/p/2078800

## #3 — aasah, 2008-02-10T16:25Z

Freddemannen, ditt exempel rör enbart kolumnerna 2, 3, 4 som alla är **mindre än 9.**  :OO  

Det jag behöver hjälp med är hur det fungerar för **kolumn 9 och uppåt**, samt vad som händer om man vill jämföra för **mer än en "oktett"**, tex 3, 11 och 15

Permalänk: https://www.webforum.nu/p/2078828

## #4 — LarsG, 2008-02-10T16:30Z

Använd 9 bitar eller mer. Nionde kolumnen = 256

sen så kan du kombinera flera columns_updated med and och or

Permalänk: https://www.webforum.nu/p/2078831

## #5 — aasah, 2008-02-10T16:33Z

> **LarsG skrev:**
>
> Använd 9 bitar eller mer. Nionde kolumnen = 256

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

Åh! Ja, det var ju smart!

Permalänk: https://www.webforum.nu/p/2078833

## #6 — LarsG, 2008-02-10T16:44Z

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.

Permalänk: https://www.webforum.nu/p/2078836

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/168881-sql-server-2000-och-columns-updated
