查询以将查询转换为 HTML 并通过电子邮件发送
Query to convert query to HTML and send via email
我使用存储过程将 SQL 查询转换为 HTML 格式的数据。这样我就可以通过电子邮件将该数据发送给使用 sql 工作的人。
我使用以下方式发送电子邮件:
Query 是将 SQL Query 转换为 HTML 格式
的存储过程
DECLARE @html nvarchar(MAX);
DECLARE @INPUT NVARCHAR(20)
SET @INPUT= ''LATE''
EXEC query @html = @html OUTPUT, @query = N'select Studentsurname,absencecomment,Absencedate from absence where AbsenceDate=CAST(CAST(GETDATE() AS DATE) AS DATETIME and YearLevel in (11,12) and absencemeaning= @INPUT', @orderBy = N'ORDER BY StudentSurname';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'PROFILE',
@recipients = 'email@email',
@subject = 'HTML email',
@body = @html,
@body_format = 'HTML',
@query_no_truncate = 1,
@attach_query_result_as_file = 0;
我的问题是当我尝试执行上面的部分时它给我一个错误提示
'Late'
附近的语法不正确
我在将 sql 查询传递给存储过程时做错了什么吗?有没有其他方法可以将 sql 查询传递给存储过程?
只有在我使用 where 子句时才会出现此问题。如果我的 select 语句仅以 "from table_name" 结尾,则不会出现任何问题。
Try This
DECLARE @html nvarchar(MAX);
DECLARE @INPUT NVARCHAR(20)
SET @INPUT= '''LATE''' --To add string with Quotes like this..
Declare @query nvarchar(MAX) = N'select Studentsurname,absencecomment,Absencedate from absence where AbsenceDate=CAST(CAST(GETDATE() AS DATE) AS DATETIME and YearLevel in (11,12) and absencemeaning='+ @INPUT
, @orderBy varchar(max) = N'ORDER BY StudentSurname';
print @query --see difference near 'LATE'
print @orderBy
EXEC query @html = @html OUTPUT, @query , @orderBy
我使用存储过程将 SQL 查询转换为 HTML 格式的数据。这样我就可以通过电子邮件将该数据发送给使用 sql 工作的人。
我使用以下方式发送电子邮件: Query 是将 SQL Query 转换为 HTML 格式
的存储过程DECLARE @html nvarchar(MAX);
DECLARE @INPUT NVARCHAR(20)
SET @INPUT= ''LATE''
EXEC query @html = @html OUTPUT, @query = N'select Studentsurname,absencecomment,Absencedate from absence where AbsenceDate=CAST(CAST(GETDATE() AS DATE) AS DATETIME and YearLevel in (11,12) and absencemeaning= @INPUT', @orderBy = N'ORDER BY StudentSurname';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'PROFILE',
@recipients = 'email@email',
@subject = 'HTML email',
@body = @html,
@body_format = 'HTML',
@query_no_truncate = 1,
@attach_query_result_as_file = 0;
我的问题是当我尝试执行上面的部分时它给我一个错误提示 'Late'
附近的语法不正确我在将 sql 查询传递给存储过程时做错了什么吗?有没有其他方法可以将 sql 查询传递给存储过程?
只有在我使用 where 子句时才会出现此问题。如果我的 select 语句仅以 "from table_name" 结尾,则不会出现任何问题。
Try This
DECLARE @html nvarchar(MAX);
DECLARE @INPUT NVARCHAR(20)
SET @INPUT= '''LATE''' --To add string with Quotes like this..
Declare @query nvarchar(MAX) = N'select Studentsurname,absencecomment,Absencedate from absence where AbsenceDate=CAST(CAST(GETDATE() AS DATE) AS DATETIME and YearLevel in (11,12) and absencemeaning='+ @INPUT
, @orderBy varchar(max) = N'ORDER BY StudentSurname';
print @query --see difference near 'LATE'
print @orderBy
EXEC query @html = @html OUTPUT, @query , @orderBy