Как обратиться к полю таблицы в теле Триггера?

gogo
Дата: 14.09.2006 17:49:12
Добрый день.
Как обратиться к полю таблицы в теле Триггера?

CREATE TRIGGER [TRIGGER NAME] ON [dbo].[Table1]
FOR INSERT, UPDATE, DELETE
AS
IF Update(Field1)
Begin
DECLARE @Var1 DateTime
SET @Var1 = Field1 /* Здесь ругается: Error 207 Invalid column name Field1*/
...

END
RETURN

Спасибо за ответы.
Prolog
Дата: 14.09.2006 17:53:02
В теле триггера вы можете обращаться как к самой таблице Table1, так и к псевдо таблицам inserted - содержит только те строки таблицы Table, которые были вставлены или измененыб deleted - содержит удаленные строки, или измененные, но с состоянии до их изменения. К ним и обращайтесь.
gogo
Дата: 14.09.2006 19:31:46
Где ошибка в приведенном мною синтаксисе?
Как в переменную Var1 записать измененное поле Field1?
Ругается на SET @Var1 = Field1
BugsBunny
Дата: 14.09.2006 20:21:57
gogo
Где ошибка в приведенном мною синтаксисе?...

it's a bold decision to start doing triggers skipping learning a syntax...

BWT, after you learn the syntax bear in mind that multiple records can be affected by DML statement
alexeyvg
Дата: 15.09.2006 10:48:22
gogo
Где ошибка в приведенном мною синтаксисе?
Как в переменную Var1 записать измененное поле Field1?
Ругается на SET @Var1 = Field1
Для получения значения поля таблицы в переменную используйте оператор SELECT.
SET-ом это сделать нельзя.
Prolog
Дата: 15.09.2006 10:57:47
gogo
Где ошибка в приведенном мною синтаксисе?
Как в переменную Var1 записать измененное поле Field1?
Ругается на SET @Var1 = Field1

SELECT @Var1 = Field1 from а здесь уже идут таблицы Table1,inserted,deleted в зависимости от вашей логики.
И учтите, что в этих таблицах может быть не одна запись, поэтому для @Var1 присвоится значение последней.