Jump to content


Photo

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


  • Faça o login para participar
1 reply to this topic

#1 Lucas Vasconcelos

Lucas Vasconcelos

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Masculino
  • Localidade:Salvador, BA

Posted 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:

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 22/10/2007, 11:37

Segundo informações na versão 2005 são válidas somente: varchar(max), nvarchar(max) e varbinary(max).
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq