Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment augmenter la taille de pièce jointe autorisée lors de l'envoi d'e-mails dans SQL Server (T-SQL)

Lorsque vous utilisez la messagerie de base de données pour envoyer des e-mails avec des pièces jointes, vous devez vous assurer que la taille du fichier de pièce jointe est dans la taille de fichier de pièce jointe autorisée.

Si vous devez envoyer des pièces jointes plus volumineuses que la limite de pièces jointes, vous devrez augmenter cette limite.

Heureusement, l'augmentation de la taille autorisée du fichier joint peut être effectuée avec une seule ligne de code T-SQL.

L'erreur

Voici l'erreur que vous recevrez si vous essayez d'envoyer une pièce jointe dont la taille est supérieure à la taille de fichier de pièce jointe autorisée :

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

Vérifiez la limite

Si vous n'avez pas encore reçu d'erreur, vous ne savez peut-être pas quelle est la limite. Vous pouvez utiliser le sysmail_help_configure_sp procédure stockée dans msdb base de données pour vérifier la limite de taille du fichier joint.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Résultat :

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

Dans cet exemple, j'ai passé MaxFileSize comme argument pour limiter les résultats à l'option de configuration qui m'intéresse. Vous pouvez également utiliser sysmail_help_configure_sp procédure sans aucun argument pour retourner toutes les options de configuration.

Modifier la limite

Vous pouvez modifier la limite de taille des pièces jointes avec le sysmail_configure_sp procédure stockée.

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

Maintenant, lorsque nous exécutons sysmail_help_configure_sp encore une fois, nous voyons la nouvelle valeur.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Résultat :

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

Notez que la description est restée la même. Dans ce cas, c'est un peu trompeur car 1 000 000 est la taille de fichier maximale par défaut, et non 4 000 000.

Vous pouvez modifier la description avec la même procédure. En fait, vous pouvez spécifier le paramètre name=value paires également, si vous préférez (c'est également vrai pour le sysmail_configure_sp procédure).

Recommençons, mais cette fois je mettrai à jour la description, et j'utiliserai le name=value paires.

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

Maintenant, lorsque nous exécutons sysmail_help_configure_sp encore une fois, nous voyons la nouvelle valeur.

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

Résultat :

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