USE [RF_WORLD]
GO
/****** Object: Trigger [dbo].[lastdeathtrigg] Script Date: 08/20/2012 10:52:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Mauro Tamm
-- =============================================
ALTER TRIGGER [dbo].[lastdeathtrigg]
ON [dbo].[tbl_pvporderview]
AFTER UPDATE
AS
IF (UPDATE(Death))
BEGIN
SET NOCOUNT ON;
DECLARE @userserial int;
SELECT @userserial ='serial' WHERE UPDATE(Death)
Insert INTO [RF_WORLD].[dbo].[lastdeath]
(serial)
VALUES (@userserial)
END
A parte where é suspeita, funcionaria assim? essencialmente, preciso selecionar apenas o valor serial da linha se ele for realmente atualizado.
Vários problemas com seu gatilho:
inserted
e/oudeleted
pseudo-tabelas.UPDATE()
apenas informa que a coluna foi referenciada, mas não informa se o valor foi alterado.Aqui está como eu reescreveria seu gatilho: