sql >> Databáze >  >> RDS >> Sqlserver

Jak zvýšit povolenou velikost přílohy při odesílání e-mailu na SQL Server (T-SQL)

Když používáte Database Mail k odesílání e-mailů s přílohami, budete se muset ujistit, že velikost souboru přílohy je v rámci povolené velikosti souboru přílohy.

Pokud potřebujete odeslat přílohy, které jsou větší než limit příloh, budete muset tento limit zvýšit.

Naštěstí lze zvětšit povolenou velikost souboru přílohy pomocí jediného řádku kódu T-SQL.

Chyba

Pokud se pokusíte odeslat přílohu, která je větší než povolená velikost souboru přílohy, zobrazí se tato chyba:

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

Zkontrolujte limit

Pokud jste ještě neobdrželi chybu, možná nevíte, jaký je limit. Můžete použít sysmail_help_configure_sp uložená procedura v msdb databáze a zkontrolujte limit velikosti souboru přílohy.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Výsledek:

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

V tomto příkladu jsem předal MaxFileSize jako argument pro zúžení výsledků pouze na možnost konfigurace, která mě zajímá. Můžete také použít sysmail_help_configure_sp procedura bez jakýchkoli argumentů vrátí všechny možnosti konfigurace.

Změnit limit

Limit velikosti souboru přílohy můžete změnit pomocí sysmail_configure_sp uložená procedura.

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

Nyní, když spustíme sysmail_help_configure_sp znovu vidíme novou hodnotu.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Výsledek:

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

Všimněte si, že popis zůstal stejný. V tomto případě je to trochu zavádějící, protože 1000000 je výchozí maximální velikost souboru – ne 4000000.

Stejným postupem můžete změnit popis. Ve skutečnosti můžete zadat parametr name=value také páry, chcete-li (to platí také pro sysmail_configure_sp postup).

Udělejme to znovu, ale tentokrát aktualizuji popis a použiji name=value párů.

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

Nyní, když spustíme sysmail_help_configure_sp znovu vidíme novou hodnotu.

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

Výsledek:

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

  1. Postgres - jak vrátit řádky s počtem 0 pro chybějící data?

  2. Jak převést typ jsonb PostgreSQL 9.4 na plovoucí

  3. Kdy použít SELECT... FOR UPDATE?

  4. Pokročilé párování oddílů pro spojení po oddílech