Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как узнать затронутые столбцы?  [new]
ply
Member

Откуда:
Сообщений: 75
Нужно в триггере (INSERT, UPDATE) сделать так чтобы если изменено определенное поле, то в другое записывать текущую дату.

То есть чтобы в таблице было поле в котом хранилось бы время последнего изменения другого поля.
19 июн 09, 18:01    [7322605]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
ply,

версия какая?
19 июн 09, 18:02    [7322617]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
Для 2000 тоже если можно?
19 июн 09, 18:02    [7322619]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
ply
Member

Откуда:
Сообщений: 75
iap,
2008
19 июн 09, 18:07    [7322645]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
ply,

Хотелось бы структуру таблиц увидеть. Особенно Primary Key

Да, не понял ещё, неужели непонятно, что при INSERT ВСЕ поля будут отличаться, просто потому, что их раньше не было!
19 июн 09, 18:13    [7322685]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
Grayscale
Member

Откуда: Спб
Сообщений: 1642
например
CREATE TABLE tbl1
ID INT Primary key,
coldata NVARCHAR(100),
colDAta2 nvarchar(100)
19 июн 09, 18:15    [7322691]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
А.Панков
Member

Откуда: Toronto
Сообщений: 523
пример из BOL/2000

Examples
A. Use the IF UPDATE clause to test data modifications
This example creates an INSERT trigger my_trig on table my_table and tests whether column b was affected by any INSERT statements.

CREATE TABLE my_table*
(a int NULL, b int NULL)
GO

CREATE TRIGGER my_trig
ON my_table
FOR INSERT
AS
IF UPDATE(b)
   PRINT 'Column b Modified'
GO

B. Use the COLUMNS UPDATED() clause to test data modifications
This example obtains similar results using the COLUMNS_UPDATED() clause.

CREATE TRIGGER my_trig2
ON my_table
FOR INSERT
AS
IF ( COLUMNS_UPDATED() & 2 = 2 )
   PRINT 'Column b Modified'
GO


19 июн 09, 18:18    [7322700]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
ply
Member

Откуда:
Сообщений: 75
А.Панков, спасибо. уже тоже нашел=)
19 июн 09, 18:20    [7322710]     Ответить | Цитировать Сообщить модератору
 Re: как узнать затронутые столбцы?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
А.Панков, ply!

Скажите, пожалйста, вот этот UPDATE
UPDATE tbl1 SET coldata=coldata WHERE ID=1
"затрагивает" coldata или нет?
19 июн 09, 18:52    [7322864]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить