sysmail_delete_mailitems_sp (Transact-SQL)
Actualizado: 14 de abril de 2006
Elimina de forma permanente los mensajes de correo electrónico de las tablas internas del Correo electrónico de base de datos.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
Argumentos
- [ @sent_before= ] 'sent_before'
Elimina los mensajes de correo electrónico hasta la fecha y hora especificadas por el argumento sent_before. sent_before es de tipo datetime y su valor predeterminado es NULL. NULL indica todas las fechas.
- [ @sent_status= ] 'sent_status'
Elimina los mensajes de correo electrónico del tipo especificado en sent_status. sent_status es de tipo varchar(8) y no tiene valor predeterminado. Las entradas válidas son sent, unsent, retrying y failed. NULL indica todos los estados.
Notas
Los mensajes del Correo electrónico de base de datos y sus datos adjuntos se almacenan en la base de datos msdb. Se deben eliminar los mensajes periódicamente para evitar que el tamaño de msdb supere el esperado y para cumplir el programa de retención de documentos de la organización. Utilice el procedimiento almacenado sysmail_delete_mailitems_sp para eliminar de forma permanente mensajes de correo electrónico de las tablas del Correo electrónico de base de datos. Un argumento opcional permite eliminar sólo los mensajes de correo electrónico antiguos indicando la fecha y la hora. Se eliminarán los mensajes de correo electrónico anteriores al valor de ese argumento. Otro argumento opcional permite eliminar sólo los mensajes de correo electrónico de un tipo determinado, especificado como el argumento sent_status. A partir del Service Pack 1 de SQL Server 2005, se debe proporcionar un argumento para @sent_before o @sent_status. Ambos argumentos no pueden ser NULL.
Si se eliminan mensajes de correo electrónico, se eliminarán también los archivos adjuntos relacionados con los mismos. Al eliminar correo electrónico no se eliminan las entradas correspondientes de sysmail_event_log. Utilice sysmail_delete_log_sp para eliminar elementos del registro.
Permisos
De forma predeterminada, se concede la ejecución de este procedimiento almacenado a los miembros de la función fija de servidor sysadmin y DatabaseMailUserRole. Los miembros de la función fija de servidor sysadmin pueden ejecutar este procedimiento para eliminar los mensajes de correo electrónico enviados por todos los usuarios. Los miembros de DatabaseMailUserRole sólo pueden eliminar los enviados por el usuario en cuestión.
Valores de código de retorno
0 (correcto) o 1 (error)
Ejemplos
A. Eliminar todos los mensajes de correo electrónico
En el ejemplo siguiente se eliminan todos los mensajes de correo electrónico del sistema del Correo electrónico de base de datos.
DECLARE @GETDATE datetime
SET @GETDATE = GETDATE()
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = @GETDATE;
GO
B. Eliminar los mensajes de correo electrónico más antiguos
En el ejemplo siguiente se eliminan los mensajes de correo electrónico del registro del Correo electrónico de base de datos anteriores a la fecha October 9, 2005
.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = 'October 9, 2005' ;
GO
C. Eliminar todos los mensajes de correo electrónico de un tipo determinado
En el ejemplo siguiente se eliminan todos los mensajes de correo electrónico con errores del registro del Correo electrónico de base de datos.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed' ;
GO
Vea también
Referencia
sysmail_allitems (Transact-SQL)
sysmail_event_log (Transact-SQL)
sysmail_mailattachments (Transact-SQL)
Otros recursos
Cómo crear un trabajo del Agente SQL Server para archivar mensajes y registros de eventos del Correo electrónico de base de datos
Solucionar problemas del Correo electrónico de base de datos
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
14 de abril de 2006 |
|