Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zwiększyć dopuszczalny rozmiar załącznika podczas wysyłania wiadomości e-mail w programie SQL Server (T-SQL)

Gdy używasz poczty bazy danych do wysyłania wiadomości e-mail z załącznikami, musisz upewnić się, że rozmiar pliku załącznika mieści się w dopuszczalnym rozmiarze pliku załącznika.

Jeśli chcesz wysłać załączniki, które przekraczają limit załączników, musisz zwiększyć ten limit.

Na szczęście zwiększenie dozwolonego rozmiaru pliku załącznika można wykonać za pomocą jednej linii kodu T-SQL.

Błąd

Oto błąd, który otrzymasz, jeśli spróbujesz wysłać załącznik, który jest większy niż dopuszczalny rozmiar pliku załącznika:

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

Sprawdź limit

Jeśli jeszcze nie otrzymałeś błędu, możesz nie wiedzieć, jaki jest limit. Możesz użyć sysmail_help_configure_sp procedura składowana w msdb bazy danych, aby sprawdzić limit rozmiaru pliku załącznika.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Wynik:

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

W tym przykładzie przekazałem MaxFileSize jako argument do zawężenia wyników tylko do interesującej mnie opcji konfiguracji. Możesz także użyć sysmail_help_configure_sp procedura bez żadnych argumentów, aby zwrócić wszystkie opcje konfiguracji.

Zmień limit

Możesz zmienić limit rozmiaru pliku załącznika za pomocą sysmail_configure_sp procedura składowana.

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

Teraz, gdy wykonujemy sysmail_help_configure_sp ponownie widzimy nową wartość.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Wynik:

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

Zwróć uwagę, że opis pozostał ten sam. W tym przypadku jest to trochę mylące, ponieważ 1000000 to domyślny maksymalny rozmiar pliku – nie 4000000.

Opis można zmienić w ten sam sposób. W rzeczywistości możesz określić parametr name=value również par, jeśli wolisz (dotyczy to również sysmail_configure_sp procedura).

Zróbmy to jeszcze raz, ale tym razem zaktualizuję opis i użyję name=value pary.

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

Teraz, gdy wykonujemy sysmail_help_configure_sp ponownie widzimy nową wartość.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyniki oddzielone przecinkami w SQL

  2. SQL Server ORDER BY data i wartości null trwają

  3. SQL Server 2005 — programowe eksportowanie tabeli (uruchom plik .sql, aby go odbudować)

  4. Używanie sp_help_jobschedule w SQL Server

  5. Wyniki SSMS do siatki - CRLF nie zachowane w kopiowaniu/wklejaniu - jakieś lepsze techniki?