Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да увеличите допустимия размер на прикачените файлове при изпращане на имейл в SQL Server (T-SQL)

Когато използвате Database Mail за изпращане на имейли с прикачени файлове, ще трябва да се уверите, че размерът на прикачения файл е в рамките на допустимия размер на прикачения файл.

Ако трябва да изпратите прикачени файлове, които са по-големи от ограничението за прикачени файлове, ще трябва да увеличите това ограничение.

За щастие, увеличаването на разрешения размер на прикачения файл може да стане с един ред T-SQL код.

Грешката

Ето грешката, която ще получите, ако се опитате да изпратите прикачен файл, който е по-голям от допустимия размер на прикачения файл:

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

Проверете лимита

Ако все още не сте получили грешка, може да не знаете какво е ограничението. Можете да използвате sysmail_help_configure_sp съхранена процедура в msdb база данни, за да проверите ограничението за размера на прикачения файл.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Резултат:

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

В този пример предадох MaxFileSize като аргумент за стесняване на резултатите само до опцията за конфигурация, която ме интересува. Можете също да използвате sysmail_help_configure_sp процедура без никакви аргументи за връщане на всички опции за конфигурация.

Промяна на лимита

Можете да промените ограничението за размера на прикачения файл с sysmail_configure_sp съхранена процедура.

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

Сега, когато изпълним sysmail_help_configure_sp отново виждаме новата стойност.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Резултат:

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

Имайте предвид, че описанието е останало същото. В този случай е малко подвеждащо, защото 1000000 е максималният размер на файла по подразбиране, а не 4000000.

Можете да промените описанието със същата процедура. Всъщност можете да посочите параметъра name=value двойки също, ако предпочитате (това важи и за sysmail_configure_sp процедура).

Нека го направим отново, но този път ще актуализирам описанието и ще използвам name=value двойки.

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

Сега, когато изпълним sysmail_help_configure_sp отново виждаме новата стойност.

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

Резултат:

+-------------+--------------+---------------------------+
| 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. Дали един израз на SQL Server е атомичен и последователен?

  2. Как да форматирате датата и часа в SQL Server

  3. SQL Server v.Next :STRING_AGG производителност, част 2

  4. Инструкцията ALTER TABLE е в конфликт с ограничението FOREIGN KEY

  5. SQL Server:Течове на ниво на изолация в обединените връзки