sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan øges den tilladte vedhæftede filstørrelse, når du sender e-mail i SQL Server (T-SQL)

Når du bruger Database Mail til at sende e-mails med vedhæftede filer, skal du sikre dig, at den vedhæftede filstørrelse er inden for den tilladte filstørrelse.

Hvis du har brug for at sende vedhæftede filer, der er større end grænsen for vedhæftede filer, skal du øge denne grænse.

Heldigvis kan man øge den tilladte vedhæftede filstørrelse med en enkelt linje T-SQL-kode.

Fejlen

Her er fejlen, du vil modtage, hvis du prøver at sende en vedhæftet fil, der er større end den tilladte filstørrelse for vedhæftede filer:

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

Tjek grænsen

Hvis du endnu ikke har modtaget en fejl, ved du måske ikke, hvad grænsen er. Du kan bruge sysmail_help_configure_sp gemt procedure i msdb database for at kontrollere størrelsesgrænsen for vedhæftede filer.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultat:

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

I dette eksempel bestod jeg MaxFileSize som et argument for at indsnævre resultaterne til kun den konfigurationsmulighed, som jeg er interesseret i. Du kan også bruge sysmail_help_configure_sp procedure uden argumenter for at returnere alle konfigurationsmuligheder.

Skift grænsen

Du kan ændre størrelsesgrænsen for vedhæftede filer med sysmail_configure_sp gemt procedure.

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

Nu når vi udfører sysmail_help_configure_sp igen ser vi den nye værdi.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Resultat:

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

Bemærk at beskrivelsen er forblevet den samme. I dette tilfælde er det en smule misvisende, fordi 1000000 er standard maksimal filstørrelse - ikke 4000000.

Du kan ændre beskrivelsen med samme procedure. Faktisk kan du angive parameteren name=value par også, hvis du foretrækker det (dette gælder også for sysmail_configure_sp procedure).

Lad os gøre det igen, men denne gang vil jeg opdatere beskrivelsen, og jeg vil bruge name=value par.

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

Nu når vi udfører sysmail_help_configure_sp igen ser vi den nye værdi.

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

Resultat:

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

  1. Hvad er forskellen mellem præcision og skala?

  2. Sådan opdateres Oracle Clob ved hjælp af JDBC

  3. Hvordan giver man en unik begrænsning til en kombination af kolonner i Oracle?

  4. Kan jeg udføre flere forespørgsler adskilt af semikolon med MySQL Connector/J?