Domanda

EXEC msdb.dbo.sp_send_dbmail 
@recipients= 'test@test.com',
@copy_recipients = 'test@test.com', 
@query = 'SELECT * FROM INSERTED',
@attach_query_result_as_file = 1,
@subject = 'Auto-Generated Deleted Item in Order Item Detail', 
@body = 'Item has been deleted from Order Item Detail', 
@body_format = 'HTML',
@importance = 'High'

Quando viene eseguito il codice di cui sopra ho il seguente errore:

Msg 22050, livello 16, stato 1, riga 0 Errore formattazione di query, i parametri probabilmente non validi Msg 14661, livello 16, stato 1, procedura sp_send_dbmail, Linea 495 esecuzione di query non riuscita: Messaggio 208, livello 16, stato 1, server BK00SQL0002, linea 1 Nome di oggetto non valido 'inserita'.

Il sotto opere: (? Come faccio a modificare per inserita)

    EXEC msdb.dbo.sp_send_dbmail 
@recipients= 'test@test.com',
@copy_recipients = 'test@test.com',
@query = 'SELECT * FROM [PreMfg].[dbo].[Order Item Detail Audit]', 
@subject = 'An Item Has Been Deleted From the Order Item Detail Table',
@attach_query_result_as_file = 1, 
@body = 'An Item Has Been Deleted From the Order Item Detail Table', 
@body_format = 'HTML',
@importance = 'High'
È stato utile?

Soluzione

Non si può fare riferimento la pseudo-tabella inserita dall'esterno il grilletto. E non si vuole veramente per inviare una e-mail per ogni inserimento / aggiornamento? E fa l'operazione che ha invocato il trigger di attesa per tutto ciò che accada (anche se la posta del database è asincrona, non è libero)?

Vi suggerisco di registrare i dati in una tabella di coda, e avere un lavoro che ogni minuto (o cinque minuti, o una certa frequenza ragionevole) si sveglia e invia la posta per eventuali nuovi dati che trova nella tabella di coda.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top