Jump to content


Lucas Vasconcelos

Member Since 22/10/2007
Offline Last Active 03/07/2008, 22:24
-----

Topics I've Started

Variáveis Locais Text E Triggers Para Monitorar Mudanças

22/10/2007, 10:10

Viva!

Estou iniciando no SQL Sever e por isto meu conhecimento não é tão bom.

Preciso fazer uma aplicação que monitore mudanças em uma tabela e que envie emails para uma ou mais pessoas reportando isto.

Já tenho um trigger assim:

ALTER TRIGGER tr_comlucasvasconcelos_printed ON nfs FOR UPDATE
AS
	IF UPDATE(printed)
	BEGIN
		DECLARE @id_printed INT
		SELECT @id_printed=id FROM INSERTED
		PRINT @id_printed
	END
GO

Ela monitora a coluna "printed" na tabela "nfs". A minha solução para enviar emails é:

Armazenar a mensagem, já formatada, e os endereços de destino em uma tabela "spool" que será "assistida" por um programa windows. Este programa de tempos em tempos vai verificar as mensagens agendadas e envia-las.

O meu problema é que ficaria mto complexo usar outras tabelas para definir a mensagem padrão e as regras adicionais (estou fazendo para uma tabela. mas, o sistema deverá monitorar várias outras com mensagens diferentes e destinatários diferentes). Então pretendo adicionar a configuração da mensagem dentro da própria trigger.

Seria algo como:

ALTER TRIGGER tr_comlucasvasconcelos_printed ON nfs FOR UPDATE
AS
	IF UPDATE(printed)
	BEGIN
		DECLARE @message TEXT

		SELECT @message = '
Caro cliente,

molestie viverra arcu. Phasellus purus. Donec sit amet nibh vel orci tristique luctus.
Etiam sed lacus. Donec eu est. Class aptent taciti sociosqu ad litora torquent per conubia
		'
 (...)

Mas quando tento exetuar este comando recebo a mensagem de erro: "The text, ntext, and image data types are invalid for local variables."

Alguém tem ideia de como posso fazer isto??

:wacko:

IPB Skin By Virteq