Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhöhen Sie die zulässige Anhangsgröße beim Senden von E-Mails in SQL Server (T-SQL)

Wenn Sie Datenbank-E-Mail zum Senden von E-Mails mit Anhängen verwenden, müssen Sie sicherstellen, dass die Dateigröße des Anhangs innerhalb der zulässigen Dateigröße des Anhangs liegt.

Wenn Sie Anhänge senden müssen, die größer als das Anhangslimit sind, müssen Sie dieses Limit erhöhen.

Glücklicherweise kann das Erhöhen der zulässigen Dateigröße von Anhängen mit einer einzigen Zeile T-SQL-Code erfolgen.

Der Fehler

Hier ist die Fehlermeldung, die Sie erhalten, wenn Sie versuchen, einen Anhang zu senden, der größer ist als die zulässige Anhangsdateigröße:

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

Überprüfen Sie das Limit

Wenn Sie noch keine Fehlermeldung erhalten haben, wissen Sie möglicherweise nicht, wie hoch das Limit ist. Sie können den sysmail_help_configure_sp verwenden gespeicherte Prozedur in der msdb Datenbank, um die Größenbeschränkung für Anhangsdateien zu überprüfen.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Ergebnis:

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

In diesem Beispiel habe ich MaxFileSize übergeben als Argument, um die Ergebnisse auf die mich interessierende Konfigurationsoption einzugrenzen. Sie können auch sysmail_help_configure_sp verwenden Prozedur ohne Argumente, um alle Konfigurationsoptionen zurückzugeben.

Limit ändern

Sie können die Größenbeschränkung für Anhangsdateien mit sysmail_configure_sp ändern gespeicherte Prozedur.

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

Wenn wir jetzt sysmail_help_configure_sp ausführen wieder sehen wir den neuen Wert.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Ergebnis:

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

Beachten Sie, dass die Beschreibung gleich geblieben ist. In diesem Fall ist es etwas irreführend, da 1000000 die standardmäßige maximale Dateigröße ist – nicht 4000000.

Sie können die Beschreibung auf die gleiche Weise ändern. Tatsächlich können Sie den Parameter name=value angeben Paare auch, wenn Sie es vorziehen (dies gilt auch für die sysmail_configure_sp Verfahren).

Machen wir es noch einmal, aber diesmal aktualisiere ich die Beschreibung und verwende name=value Paare.

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

Wenn wir jetzt sysmail_help_configure_sp ausführen wieder sehen wir den neuen Wert.

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

Ergebnis:

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