Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come aumentare la dimensione consentita dell'allegato durante l'invio di posta elettronica in SQL Server (T-SQL)

Quando utilizzi Posta database per inviare e-mail con allegati, devi assicurarti che le dimensioni del file allegato rientrino nelle dimensioni consentite del file allegato.

Se devi inviare allegati superiori al limite di allegati, dovrai aumentare tale limite.

Fortunatamente, è possibile aumentare la dimensione consentita del file allegato con una singola riga di codice T-SQL.

L'errore

Ecco l'errore che riceverai se provi a inviare un allegato di dimensioni maggiori rispetto alle dimensioni consentite del file allegato:

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

Verifica il limite

Se non hai ancora ricevuto un errore, potresti non sapere qual è il limite. Puoi usare il sysmail_help_configure_sp stored procedure in msdb database per verificare il limite di dimensione del file allegato.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Risultato:

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

In questo esempio ho passato MaxFileSize come argomento per restringere i risultati solo all'opzione di configurazione che mi interessa. Puoi anche usare sysmail_help_configure_sp procedura senza argomenti per restituire tutte le opzioni di configurazione.

Cambia il limite

Puoi modificare il limite delle dimensioni del file allegato con sysmail_configure_sp procedura memorizzata.

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

Ora quando eseguiamo sysmail_help_configure_sp di nuovo, vediamo il nuovo valore.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Risultato:

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

Si noti che la descrizione è rimasta la stessa. In questo caso è un po' fuorviante perché 1000000 è la dimensione massima predefinita del file, non 4000000.

È possibile modificare la descrizione con la stessa procedura. Infatti, puoi specificare il parametro name=value anche coppie, se preferisci (questo vale anche per sysmail_configure_sp procedura).

Rifacciamolo, ma questa volta aggiornerò la descrizione e userò il name=value coppie.

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

Ora quando eseguiamo sysmail_help_configure_sp di nuovo, vediamo il nuovo valore.

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

Risultato:

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