sql - SQL Server 邮件变量用法
问题描述
我想在 SQL Server 上使用发送邮件实用程序,其中收件人变量 (@recipients) 应采用格式化字符串作为值。我想在下面展示一个示例:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Mail Profile',
@recipients = Right('domain/user@company.com',
CHARINDEX('/',reverse('domain/user@company.com'))-1),
@body = 'TEST MESSAGE',
@subject = 'Automated Success Message'
但是当我执行上述语句时,出现错误消息:关键字附近的语法不正确Right
解决方案
您不能将表达式作为参数传递给 am SP。您必须传递文字值或变量。您需要先声明一个变量,设置它的值,然后将其作为参数传递:
DECLARE @recipients nvarchar(255);
SET @recipients = RIGHT('domain/user@company.com', CHARINDEX('/', REVERSE('domain/user@company.com')) - 1);
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Mail Profile',
@recipients = @recipients,
@body = 'TEST MESSAGE',
@subject = 'Automated Success Message';
推荐阅读
- php - Symfony Twig 错误提示:未定义索引
- c++ - Qt - QLineEdit 不更新页面和 URL
- sql - 是否定义了 SQL SELECT 中的“OR”子句的结果?
- logstash - 如何在 Kibana/Logstash 中对日志进行分组?
- python-3.x - 使用 selenium 和代理获取请求正文
- ios - 使用 iOS 图表在自定义标记视图上点击手势
- c - 我可以在图表的边缘插入数据吗?
- kubernetes - Kubernetes CNI 与 Kube-proxy
- php - 如何每批读取文件 .csv
- php - 如何判断 CakePHP 3.x 中的调试模式是否开启