Sql server 2008 r2 查询以向多个用户发送邮件及其对应的票证
我有一个表,其中列出了车票所有者和分配给他们的高优先级车票 例如: 我需要使用sp_send_dbmail从sql server向John发送邮件,并在一封邮件中分配给他所有票证。这是一个巨大的表,所以我希望用一封邮件将分配的票证发送给用户,而不是每个票证发送一封邮件。Sql server 2008 r2 查询以向多个用户发送邮件及其对应的票证,sql-server-2008-r2,Sql Server 2008 R2,我有一个表,其中列出了车票所有者和分配给他们的高优先级车票 例如: 我需要使用sp_send_dbmail从sql server向John发送邮件,并在一封邮件中分配给他所有票证。这是一个巨大的表,所以我希望用一封邮件将分配的票证发送给用户,而不是每个票证发送一封邮件。 任何帮助都将不胜感激。非常快速的谷歌搜索将为您提供所需的所有信息: 此页面将准确地告诉您需要知道的内容。这应该可以做到这一点 SET NOCOUNT ON; --sample of your tickets table C
任何帮助都将不胜感激。非常快速的谷歌搜索将为您提供所需的所有信息:
此页面将准确地告诉您需要知道的内容。这应该可以做到这一点
SET NOCOUNT ON;
--sample of your tickets table
CREATE TABLE #Tickets(
TicketId INT IDENTITY,
TicketOwner VARCHAR(100),
TicketDetails VARCHAR(MAX)
)
;
--some sample values
INSERT INTO #Tickets(
TicketOwner,
TicketDetails
)
VALUES
('John', 'This is the first ticket'),
('John', 'This is the second ticket'),
('Jeremy', 'This is the third ticket')
;
--gets the dense_rank so you can iterate through the list of distinct users
SELECT
TicketId,
TicketOwner,
TicketDetails,
DENSE_RANK() OVER (ORDER BY TicketOwner) AS RowNum
INTO #Temp
FROM #Tickets
ORDER BY TicketOwner, TicketId
;
--holds the details of each email
DECLARE
@RowNum INT = (SELECT MAX(RowNum) FROM #Temp),
@MySubject VARCHAR(100) = '',
@MyBody VARCHAR(MAX) = ''
;
--iterate through distinct TicketOwnders by using the dense rank value above
WHILE @RowNum > 0
BEGIN
--assign variables
SELECT @MySubject = TicketOwner + '''s tickets:',
@MyBody = @MyBody + 'Ticket #' + CAST(TicketId AS VARCHAR(10)) + ': ' + TicketDetails + CHAR(10) + CHAR(13)
FROM #Temp
WHERE RowNum = @RowNum
;
--send mail
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'jgiaco@fanatics.com',
@subject = @MySubject,
@body = @MyBody
;
SET @RowNum = @RowNum - 1;
SET @MyBody = '';
SET @MySubject = '';
END
;
是的,我知道。我知道从sp_send_dbmail发送的过程。但是我需要一个查询,将分配给用户的所有票证通过一封邮件发送给用户,而不是每个票证发送一封邮件。然后,您需要在问题中发布您迄今为止尝试过的内容,我将更新答案。