sql >> Database >  >> RDS >> Sqlserver

Hoe de toegestane bijlagegrootte te vergroten bij het verzenden van e-mail in SQL Server (T-SQL)

Wanneer u Database Mail gebruikt om e-mails met bijlagen te verzenden, moet u ervoor zorgen dat de bestandsgrootte van de bijlage binnen de toegestane bestandsgrootte van de bijlagen valt.

Als u bijlagen moet verzenden die groter zijn dan de bijlagelimiet, moet u die limiet verhogen.

Gelukkig kan de toegestane bestandsgrootte van bijlagen worden vergroot met een enkele regel T-SQL-code.

De fout

Dit is de foutmelding die je krijgt als je een bijlage probeert te verzenden die groter is dan de toegestane bestandsgrootte voor bijlagen:

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

Controleer de limiet

Als je nog geen foutmelding hebt gekregen, weet je misschien niet wat de limiet is. U kunt de sysmail_help_configure_sp . gebruiken opgeslagen procedure in de msdb database om de bestandsgroottelimiet voor bijlagen te controleren.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultaat:

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

In dit voorbeeld ben ik geslaagd voor MaxFileSize als argument om de resultaten te beperken tot alleen de configuratie-optie waarin ik geïnteresseerd ben. Je kunt ook sysmail_help_configure_sp gebruiken procedure zonder argumenten om alle configuratie-opties terug te geven.

De limiet wijzigen

U kunt de bestandsgroottelimiet voor bijlagen wijzigen met de sysmail_configure_sp opgeslagen procedure.

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

Wanneer we nu sysmail_help_configure_sp . uitvoeren nogmaals, we zien de nieuwe waarde.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultaat:

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

Merk op dat de beschrijving hetzelfde is gebleven. In dit geval is het een beetje misleidend omdat 1000000 de standaard maximale bestandsgrootte is – niet 4000000.

U kunt de beschrijving met dezelfde procedure wijzigen. In feite kunt u de parameter name=value . specificeren paren, als je wilt (dit geldt ook voor de sysmail_configure_sp procedure).

Laten we het nog een keer doen, maar deze keer zal ik de beschrijving bijwerken en de name=value gebruiken paren.

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

Wanneer we nu sysmail_help_configure_sp . uitvoeren nogmaals, we zien de nieuwe waarde.

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

Resultaat:

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

  1. Hoe speciale tekens zoals &in te voeren in de Oracle-database?

  2. Hoe gebruik ik een globale tijdelijke tabel in de Oracle-procedure?

  3. 4 gegevenstypen die worden afgeschaft in SQL Server

  4. Een sha1-hash van een rij maken in Oracle