Любой тригер фактически пишется по шаблону. Шаблон с необходимыми комментариями показан ниже:

Код:
USE [ ]	-- Название используемой базы
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [ ]    -- Название тригера
   ON  [dbo].[ ]    -- Название таблицы, к которой крепится тригер
   FOR UPDATE
AS
SET NOCOUNT ON;

    IF UPDATE ( )    -- Название поля, при обновлении которого выполняется тригер
BEGIN
    	-- Тело тригера
    	-- Здесь пишутся действия, которые должны происходить
    	-- при выполнении тригера
END

END

Ниже приведён пример тригера, который ограничивает кач персов 65м уровнем после того, как они выполнили квест на разблокировку кача на 56м уровне.

Код:
USE [RF_WORLD_NOVUS]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [MaxLv]    
   ON  [dbo].[tbl_general]
   FOR UPDATE
AS
SET NOCOUNT ON;

    IF UPDATE (MaxLevel)	-- При обновлении поля MaxLevel в таблице tbl_general
BEGIN
	declare @serial int    -- Обьявляем переменную @serial типа int
	declare @MaxLv int    -- Обьявляем переменную @MaxLv типа int
	set @serial = (select serial from inserted)	-- Присваиваем переменной серийник персонажа у которого обновляется параметр MaxLevel
	set @MaxLv = (select MaxLevel from tbl_general where serial = @serial)	-- Присваиваем переменной параметр MaxLevel нужного нам перса
	if @MaxLv = 66    	-- Если параметр @MaxLv равен 66му уровню, выполняется следующее действие
	BEGIN
    update tbl_general    -- Указываем, что вносим изменения в таблицу tbl_general
    set MaxLevel = 65    -- Присваиваем значение 65 параметру MaxLevel
    where serial = @serial	-- В строке, у которой параметр serial равен серийнику персонажа
	END            -- у которого обновляется параметр MaxLevel
END

©Martin