Compartir a través de


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.

Icono de vínculo a temasConvenciones 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

Contenido nuevo:
  • Se ha agregado información sobre el requisito del Service Pack 1 de proporcionar uno de los argumentos.