MSSQL 2008. Можно ли в тригере узнать каким запросом изменен столбец?

Zelius
Дата: 22.01.2009 17:14:30
Субж. написал тригер:
ALTER TRIGGER dbo.t_test_update
   ON _test
   AFTER UPDATE
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	if UPDATE([newId]) 
		insert into dbo._trg_test ( resultId, SQL)
			select newId, (select (select text from sys.dm_exec_sql_text(sql_handle)) from master.dbo.sysprocesses where spid = @@SPID)  
			from inserted 
END
GO
Но видать тригер выполняется в другом процессе, так как текст запроса совсем другой. Так можно ли выцепить нужный мне текст?
С уважением, Князев Константин
Glory
Дата: 22.01.2009 17:16:39
Триггер AFTER UPDATE может сработать только на UPDATE.
А sys.dm_exec_sql_text возвращает текст пакета(batch), а не запроса
Zelius
Дата: 22.01.2009 17:19:38
Я хотел положить в табличку лога данные. Так можно это как-нибудь сделать или нереально?

С уважением, Князев Константин
GreenSunrise
Дата: 22.01.2009 20:37:49
Zelius
Я хотел положить в табличку лога данные.

Данные берутся из псевдо-таблиц inserted и deleted. Вы уверены, что вам всенепременно нужен стейтмент, которым изменения проводились? Может, просто данных уже достаточно?