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 | +-------------+--------------+---------------------------+