Sql-Server
儲存過程 sql server 中“+”附近的語法不正確
我正在編寫一個儲存過程,它將接受一個參數並將郵件發送給一些收件人。我正在使用 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;
我在
+
符號中遇到錯誤。如果我刪除該+
符號並執行,則該過程將被執行。否則它給出錯誤。請幫忙。我正在基於知識進行嘗試。因此,如果有的話,請隨時分享發送這樣的郵件的缺點。
謝謝你。
該
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' ;
使用者定義的儲存過程的範例:
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';
消息 102,級別 15,狀態 1,第 46 行“+”附近的語法不正確。