sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man ökar den tillåtna storleken för bilagor när du skickar e-post i SQL Server (T-SQL)

När du använder Database Mail för att skicka e-postmeddelanden med bilagor, måste du se till att storleken på den bifogade filstorleken är inom den tillåtna storleken för bilaga.

Om du behöver skicka bilagor som är större än gränsen för bilagor, måste du öka den gränsen.

Lyckligtvis kan en ökning av den tillåtna storleken på bifogade filer göras med en enda rad med T-SQL-kod.

Felet

Här är felet du får om du försöker skicka en bilaga som är större än den tillåtna filstorleken för bilagan:

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

Kontrollera gränsen

Om du ännu inte har fått ett felmeddelande kanske du inte vet vad gränsen är. Du kan använda sysmail_help_configure_sp lagrad procedur i msdb databas för att kontrollera storleksgränsen för bifogade filer.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultat:

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

I det här exemplet skickade jag MaxFileSize som ett argument för att begränsa resultaten till bara det konfigurationsalternativ som jag är intresserad av. Du kan också använda sysmail_help_configure_sp procedur utan några argument för att returnera alla konfigurationsalternativ.

Ändra gränsen

Du kan ändra storleksgränsen för bilagor med sysmail_configure_sp lagrad procedur.

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

Nu när vi kör sysmail_help_configure_sp igen ser vi det nya värdet.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultat:

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

Observera att beskrivningen har förblivit densamma. I det här fallet är det lite missvisande eftersom 1000000 är standardstorleken för maximal fil - inte 4000000.

Du kan ändra beskrivningen med samma procedur. Faktum är att du kan ange parametern name=value par också, om du föredrar det (detta gäller även för sysmail_configure_sp förfarande).

Låt oss göra det igen, men den här gången uppdaterar jag beskrivningen och använder name=value par.

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

Nu när vi kör sysmail_help_configure_sp igen ser vi det nya värdet.

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

Resultat:

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

  1. Hur gör man en mysqldump utan en lösenordsuppmaning?

  2. SQL:ta bort all data från alla tillgängliga tabeller

  3. Postgres-fel:Mer än en rad returneras av en underfråga som används som uttryck

  4. Hur lägger jag till en anpassad CHECK-begränsning på en MySQL-tabell?