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

Comment réparer "le nom du profil n'est pas valide" lors de la mise à jour d'un profil de messagerie de base de données dans SQL Server (T-SQL)

Si vous obtenez une erreur "le nom de profil n'est pas valide" lors de la mise à jour d'un profil de messagerie de base de données dans SQL Server, il se peut que vous ayez oublié de fournir l'ID de profil.

Lorsque vous mettez à jour un profil de messagerie de base de données avec le sysmail_update_profile_sp procédure stockée, vous devez inclure l'ID de profil si vous souhaitez mettre à jour le nom du profil.

Exemple

Imaginez que nous exécutons le code suivant pour renvoyer tous les profils de messagerie de base de données :

EXEC msdb.dbo.sysmail_help_profile_sp;

Résultat :

+--------------+------------------+---------------------------+
| profile_id   | name             | description               |
|--------------+------------------+---------------------------|
| 1            | DB Admin Profile | Profile for admin emails. |
+--------------+------------------+---------------------------+

Nous décidons donc de mettre à jour le nom de ce profil de "Profil d'administrateur de base de données" à "Nouveau profil d'administrateur de base de données".

Voici un exemple de comment pas pour le faire (c'est-à-dire comment produire l'erreur).

EXECUTE msdb.dbo.sysmail_update_profile_sp
    @profile_name = 'New DB Admin Profile',
    @description = 'Profile for admin emails.';

Dans ce cas, je fournis le nouveau nom et la description existante. Mais cela ne va pas le couper.

Exécution qui produira l'erreur suivante :

Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_profile_sp, Line 42
profile name is not valid

Pour le faire correctement, vous devez fournir l'ID de profil :

EXECUTE msdb.dbo.sysmail_update_profile_sp
    @profile_id = 1,
    @profile_name = 'New DB Admin Profile',
    @description = 'Profile for admin emails.';

Résultat :

Commands completed successfully.

Maintenant, lorsque je vérifie ma liste de profils, je vois le nom du profil mis à jour.

EXEC msdb.dbo.sysmail_help_profile_sp;

Résultat :

+--------------+----------------------+---------------------------+
| profile_id   | name                 | description               |
|--------------+----------------------+---------------------------|
| 1            | New DB Admin Profile | Profile for admin emails. |
+--------------+----------------------+---------------------------+

Notez que vous n'avez pas besoin de fournir l'ID de profil si vous ne faites que mettre à jour la description (tant que vous fournissez le nom de profil correct).