技术文摘
SQL Server 使用触发器发送电子邮件实例代码分享
SQL Server 使用触发器发送电子邮件实例代码分享
在数据库管理和应用开发中,SQL Server 的触发器功能强大,能在特定事件发生时自动执行预定义操作。而结合发送电子邮件功能,能让我们及时获取数据库关键变化的通知。下面分享一个 SQL Server 使用触发器发送电子邮件的实例代码及详细说明。
确保 SQL Server 数据库邮件功能已启用。通过 SQL Server 配置管理器,开启“数据库邮件”服务。之后,需要创建一个数据库邮件账户和一个数据库邮件配置文件,并将该配置文件设置为默认配置文件。
创建数据库邮件账户的代码如下:
EXEC msdb.dbo.sysmail_add_account_sp
@account_name = 'MyEmailAccount',
@description = '用于发送邮件的账户',
@email_address = 'your_email@example.com',
@display_name = 'Database Notification',
@mailserver_name ='smtp.example.com',
@port = 587,
@username = 'your_smtp_username',
@password = 'your_smtp_password';
接着创建数据库邮件配置文件:
EXEC msdb.dbo.sysmail_add_profile_sp
@profile_name = 'MyEmailProfile',
@description = '数据库邮件配置文件';
将账户添加到配置文件:
EXEC msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'MyEmailProfile',
@account_name = 'MyEmailAccount',
@sequence_number = 1;
设置默认配置文件:
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'MyEmailProfile',
@principal_name = 'public',
@is_default = 1;
接下来创建一个触发器,当特定表有新记录插入时发送电子邮件通知。假设我们有一个名为“Employees”的表,每当有新员工记录插入时发送邮件:
CREATE TRIGGER trg_InsertEmployee
ON Employees
AFTER INSERT
AS
BEGIN
DECLARE @emailSubject NVARCHAR(255);
DECLARE @emailBody NVARCHAR(MAX);
SET @emailSubject = '新员工入职通知';
SET @emailBody = '有新员工加入公司,请查看相关信息。';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'MyEmailProfile',
@recipients ='recipient@example.com',
@subject = @emailSubject,
@body = @emailBody;
END;
以上代码创建了一个名为“trg_InsertEmployee”的触发器,在“Employees”表插入新记录后,会发送一封主题为“新员工入职通知”,内容为“有新员工加入公司,请查看相关信息。”的电子邮件给指定收件人。
通过这种方式,利用 SQL Server 触发器结合数据库邮件功能,能方便快捷地实现数据库事件与邮件通知的联动,提升数据管理的及时性和有效性。无论是监控数据变化,还是重要操作提醒,都能轻松应对。
TAGS: 实例代码 电子邮件 SQL Server 触发器