Wan*_*eet 3 sql-server query stored-procedures syntax
我正在编写一个存储过程,它将接受一个参数并向某些收件人发送邮件。我正在使用 sql 内置存储过程。
这是代码
create proc send_mail_admin(@usage_data as varchar(200))
as
begin
--get the list of mail admins from Users
declare @admin_list varchar(max);
set @admin_list = '';
--query to get all the admins
begin
select
@admin_list = @admin_list + email + ';'
from
Users;
end
--call the mail stored procedure
exec msdb.dbo.sp_send_dbmail
@profile_name='some_mail_profile',
@recipients=@admin_list,
@subject='Mail from sql server',
@body=@usage_data + ' end of data',
@importance='HIGH' ;
end;
Run Code Online (Sandbox Code Playgroud)
我在+
符号中遇到错误。如果我删除+
符号并执行,则该过程正在执行。否则它给出错误。请稍微帮助一下。
我正在基于知识尝试这个。因此,如果有的话,请随时分享发送这样的邮件的缺点。
谢谢你。
的msdb.dbo.sp_send_dbmail
过程(或其它程序)仅接受一个参数或一个文字值。
考虑将执行更改为sp_send_dbmail
:
SET @usage_data += ' end of data'
exec msdb.dbo.sp_send_dbmail
@profile_name='some_mail_profile',
@recipients=@admin_list,
@subject='Mail from sql server',
@body=@usage_data,
@importance='HIGH' ;
Run Code Online (Sandbox Code Playgroud)
用户定义存储过程的示例:
CREATE PROCEDURE dbo.bla(@dbname varchar(255))
as
SELECT *
FROM sys.databases
WHERE NAME = @dbname;
GO
DECLARE @dbname varchar(200);
SET @dbname ='Half';
EXEC dbo.bla @dbname+'OtherHalf';
Run Code Online (Sandbox Code Playgroud)
消息 102,级别 15,状态 1,第 46 行“+”附近的语法不正确。
归档时间: |
|
查看次数: |
1603 次 |
最近记录: |