sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo aumentar el tamaño de archivo adjunto permitido al enviar correo electrónico en SQL Server (T-SQL)

Cuando utilice el Correo electrónico de base de datos para enviar correos electrónicos con archivos adjuntos, deberá asegurarse de que el tamaño del archivo adjunto esté dentro del tamaño de archivo adjunto permitido.

Si necesita enviar archivos adjuntos que superan el límite de archivos adjuntos, deberá aumentar ese límite.

Afortunadamente, se puede aumentar el tamaño del archivo adjunto permitido con una sola línea de código T-SQL.

El Error

Este es el error que recibirá si intenta enviar un archivo adjunto que sea más grande que el tamaño de archivo adjunto permitido:

Msg 22051, Level 16, State 1, Line 0
File attachment or query results size exceeds allowable value of 1000000 bytes.

Comprobar el límite

Si aún no ha recibido un error, es posible que no sepa cuál es el límite. Puede usar el sysmail_help_configure_sp procedimiento almacenado en msdb base de datos para verificar el límite de tamaño del archivo adjunto.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultado:

+-------------+--------------+---------------------------+
| paramname   | paramvalue   | description               |
|-------------+--------------+---------------------------|
| MaxFileSize | 1000000      | Default maximum file size |
+-------------+--------------+---------------------------+

En este ejemplo pasé MaxFileSize como argumento para restringir los resultados a solo la opción de configuración que me interesa. También puede usar sysmail_help_configure_sp procedimiento sin ningún argumento para devolver todas las opciones de configuración.

Cambiar el límite

Puede cambiar el límite de tamaño del archivo adjunto con sysmail_configure_sp procedimiento almacenado.

EXEC msdb.dbo.sysmail_configure_sp 'MaxFileSize','3000000';

Ahora cuando ejecutamos sysmail_help_configure_sp de nuevo, vemos el nuevo valor.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultado:

+-------------+--------------+---------------------------+
| paramname   | paramvalue   | description               |
|-------------+--------------+---------------------------|
| MaxFileSize | 3000000      | Default maximum file size |
+-------------+--------------+---------------------------+

Tenga en cuenta que la descripción se ha mantenido igual. En este caso, es un poco engañoso porque 1000000 es el tamaño de archivo máximo predeterminado, no 4000000.

Puede cambiar la descripción con el mismo procedimiento. De hecho, puede especificar el parámetro name=value pares también, si lo prefiere (esto también es cierto para el sysmail_configure_sp procedimiento).

Hagámoslo de nuevo, pero esta vez actualizaré la descripción y usaré el name=value parejas.

EXECUTE msdb.dbo.sysmail_configure_sp  
    @parameter_name = 'MaxFileSize', 
    @parameter_value = '4000000',
    @description = 'Current maximum file size';

Ahora cuando ejecutamos sysmail_help_configure_sp de nuevo, vemos el nuevo valor.

EXEC msdb.dbo.sysmail_help_configure_sp 
    @parameter_name = 'MaxFileSize';

Resultado:

+-------------+--------------+---------------------------+
| paramname   | paramvalue   | description               |
|-------------+--------------+---------------------------|
| MaxFileSize | 4000000      | Current maximum file size |
+-------------+--------------+---------------------------+