SQL Serverでデータベースメールプロファイルを更新するときに「プロファイル名が無効です」というエラーが表示される場合は、プロファイルIDの入力を忘れている可能性があります。
sysmail_update_profile_sp
でデータベースメールプロファイルを更新する場合 ストアドプロシージャで、プロファイル名を更新する場合は、プロファイルIDを含める必要があります。
例
次のコードを実行して、すべてのデータベースメールプロファイルを返すとします。
EXEC msdb.dbo.sysmail_help_profile_sp;
結果:
+--------------+------------------+---------------------------+ | profile_id | name | description | |--------------+------------------+---------------------------| | 1 | DB Admin Profile | Profile for admin emails. | +--------------+------------------+---------------------------+
そのため、このプロファイルの名前を「DB管理者プロファイル」から「新しいDB管理者プロファイル」に更新することにしました。
しない方法の例を次に示します。 それを行うために(つまり、エラーを生成する方法)。
EXECUTE msdb.dbo.sysmail_update_profile_sp
@profile_name = 'New DB Admin Profile',
@description = 'Profile for admin emails.';
この場合、新しい名前と既存の説明を提供します。しかし、それはそれを削減するつもりはありません。
これを実行すると、次のエラーが発生します:
Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_profile_sp, Line 42 profile name is not valid
正しく行うには、プロファイルIDを提供する必要があります:
EXECUTE msdb.dbo.sysmail_update_profile_sp
@profile_id = 1,
@profile_name = 'New DB Admin Profile',
@description = 'Profile for admin emails.';
結果:
Commands completed successfully.
プロファイルのリストを確認すると、更新されたプロファイル名が表示されます。
EXEC msdb.dbo.sysmail_help_profile_sp;
結果:
+--------------+----------------------+---------------------------+ | profile_id | name | description | |--------------+----------------------+---------------------------| | 1 | New DB Admin Profile | Profile for admin emails. | +--------------+----------------------+---------------------------+
説明を更新するだけの場合は(正しいプロファイル名を指定する限り)、プロファイルIDを指定する必要はありません。