2010-07-14 4 views
1

Я написал триггер для таблицы для вставки, обновления. Для каждой вставки и обновления в триггере я сравниваю строки из таблицы «Вставленные» и строки из таблицы «Удаленные».Как выбрать динамический столбец из таблицы?

Мне нужно получить поврежденную колонку. Как это сделать?

A B C D 
1 2 3 5. 

Я обновляю значение B с помощью 3. Затем срабатывает триггер. В этом триггере из удаляемой таблицы можно получить:

A B C D 
1 2 3 5 

Из таблицы вставленной я могу получить:

A B C D 
1 3 3 5 

Мне нужно получить столбец B в одиночку.

Как это сделать?
Спасибо.

+0

На самом деле А, В, С, D и столбцы 1,2,3,4 являются значениями. Я написал как таблицу, но это не показалось так. Пожалуйста, не путайте. Спасибо. – Manoj

ответ

5

Вы можете проверить, был ли столбец изменен IF UPDATE (namehere)

CREATE TRIGGER [dbo].[Triggername] 
ON [dbo].[TableName] 
FOR UPDATE 
AS 

IF UPDATE(Columname) --If this column has changed 
BEGIN 
     --Your code here 
    END 
+0

hah, я был на полпути длинным ответом, содержащим ужасное заявление CASE. Забыл о функции UPDATE(). Хороший ответ. – Jamiec

Смежные вопросы