Sql 如何将查询的输出转换为多个HTML表以发送电子邮件
我正在进行自动化设置,每10分钟运行一次批处理文件,因此报告将以HTML格式发送结果,如果记录大小较小,我可以获得输出,例如:10行,如果记录或更多,则我只能看到最小数据,例:如果我有30行数据要通过邮件发送,那么下面的代码显示了15行,并且它误导了第一个表和标题的安排Sql 如何将查询的输出转换为多个HTML表以发送电子邮件,sql,sql-server,Sql,Sql Server,我正在进行自动化设置,每10分钟运行一次批处理文件,因此报告将以HTML格式发送结果,如果记录大小较小,我可以获得输出,例如:10行,如果记录或更多,则我只能看到最小数据,例:如果我有30行数据要通过邮件发送,那么下面的代码显示了15行,并且它误导了第一个表和标题的安排 DECLARE @xmlone NVARCHAR(MAX) DECLARE @bodyone NVARCHAR(MAX) SET @xmlone = CAST(( SELECT [Instance] AS 'td','',
DECLARE @xmlone NVARCHAR(MAX)
DECLARE @bodyone NVARCHAR(MAX)
SET @xmlone = CAST(( SELECT
[Instance] AS 'td','',
[Direction] AS 'td','',
[SouthEast] AS 'td','',
[SOuthCentral] AS 'td','',
SouthWest AS 'td'
FROM ErrorValues
Where Instance ='Support'
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SET @bodyone ='<html><body><H3>Maximum Error Value </H3>
<head><style>
table {
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
</style>
</head>
<body>
<table>
<tr>
<th> Instance </th>
<th> Direction </th>
<th> SouthEast </th>
<th> SouthCentral </th>
<th> SouthWest </th></tr>'
SET @bodyone = @bodyone + @xmlone +'</table></body></html>'
Print @bodyone
GO
print '==================================================================================================================='
DECLARE @xmltwo NVARCHAR(MAX)
DECLARE @bodytwo NVARCHAR(MAX)
SET @xmltwo = CAST(( SELECT
[SerName] AS 'td','',
[IPAddress] AS 'td','',
[SName] AS 'td','',
[Status] AS 'td','',
[Error Count] AS 'td'
FROM SServiceDown
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SET @bodytwo ='<html><body><H2>Error Count</H2>
<table>
<tr>
<th> SerName </th>
<th> IPAddress </th>
<th> SName </th>
<th> Status </th>
<th> Error count </th> </tr>'
SET @bodytwo = @bodytwo + @xmltwo +'</table></body></html>'
Print @bodytwo
GO
Print '==================================================================================================================='
DECLARE @xmlthree NVARCHAR(MAX)
DECLARE @bodythree NVARCHAR(MAX)
SET @xmltwo = CAST(( SELECT
[SerName] AS 'td','',
[IPAddress] AS 'td','',
[SName] AS 'td','',
[Status] AS 'td','',
[TimeTaken] AS 'td','',
[MName] AS 'td','',
[TTime] AS 'td'
FROM Gold10
ORDER BY TTaken DESC
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SET @bodythree ='<html><body><H3>Web Report</H3>
<table>
<tr>
<th> SerName </th>
<th> IPAddress </th>
<th> SName </th>
<th> Status </th>
<th> TTaken </th>
<th> MName </th>
<th> TTime </th> </tr>'
SET @bodythree = @bodythree + @xmlthree +'</table></body></html>'
Print @bodythree
Go
我的预期结果应该返回特定表中的所有记录
但我只得到了部分记录,也误导了路线标题
期望-
<html><body><H3>Maximum Error count </H3>
<body>
<table>
<tr>
<th> Cluster </th>
<th> Direction </th>
<th> SouthSouthEast </th>
<th> SouthSouthCentral </th>
<th> SouthSouthWest </th></tr><tr><td>SouthSouthWest1</td><td>SouthSouthWest(RSM)</td><td>11</td><td>12.6</td><td>10.99</td></tr></table></body></tbody></html>
===================================================================================================================
<html><body><H3>Web Report</H3>
<body>
<head><style>
table {
border-collapse: collapse;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
</style>
</head>
<table>
<tr>
<th> SerName </th>
<th> IPAddress </th>
<th> SName </th>
<th> Status </th>
<th> TTaken </th>
<th> MName </th>
<th> TTime </th> </tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test Finish</td><td>45.000000</td><td>SouthEast</td><td> 2:57:24.81</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test end</td><td>43.000000</td><td>SouthCentral</td><td>10:32:47.52</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test end</td><td>43.000000</td><td>SouthWest</td><td>10:32:47.52</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>2.099131</td><td>SouthEast</td><td>02:57:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>2.031256</td><td>SouthEast</td><td>02:56:58 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.957105</td><td>SouthWest</td><td>10:32:06 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.957105</td><td>SouthCentral</td><td>10:32:06 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.941930</td><td>SouthEast</td><td>02:57:04 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.937502</td><td>SouthEast</td><td>02:56:41 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>1.930133</td><td>SouthCentral</td><td>10:32:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>1.930133</td><td>SouthWest</td><td>10:32:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.899180</td><td>SouthWest</td><td>10:32:10 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.899180</td><td>SouthCentral</td><td>10:32:10 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.895235</td><td>SouthCentral</td><td>10:32:21 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.895235</td><td>SouthWest</td><td>10:32:21 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.875342</td><td>SouthWest</td><td>10:32:12 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.875342</td><td>SouthCentral</td><td>10:32:12 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.869292</td><td>SouthCentral</td><td>10:32:36 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.869292</td><td>SouthWest</td><td>10:32:36 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.859384</td><td>SouthWest</td><td>10:32:19 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.859384</td><td>SouthCentral</td><td>10:32:19 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.858262</td><td>SouthCentral</td><td>10:32:32 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.858262</td><td>SouthWest</td><td>10:32:32 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.857935</td><td>SouthWest</td><td>10:32:29 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.857935</td><td>SouthCentral</td><td>10:32:29 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>state</td><td>PASS</td><td>1.812501</td><td>SouthCentral</td><td>10:32:17 AM</td></tr><tr><td></table>
我得到了-
<html><body><H3>Maximum Error count </H3>
<body>
<table>
<tr>
<th> Cluster </th>
<th> Direction </th>
<th> SouthSouthEast </th>
<th> SouthSouthCentral </th>
<th> SouthSouthWest </th></tr><tr><td>SouthSouthWest1</td><td>SouthSouthWest(RSM)</td><td>11</td><td>12.6</td><td>10.99</td></tr></table></body></tbody></html>
===================================================================================================================
<html><body><H3>Web Report</H3>
<body>
<head><style>
table {
border-collapse: collapse;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
</style>
</head>
<table>
<tr>
<th> SerName </th>
<th> IPAddress </th>
<th> SName </th>
<th> Status </th>
<th> TTaken </th>
<th> MName </th>
<th> TTime </th> </tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test Finish</td><td>45.000000</td><td>SouthEast</td><td> 2:57:24.81</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test end</td><td>43.000000</td><td>SouthCentral</td><td>10:32:47.52</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test end</td><td>43.000000</td><td>SouthWest</td><td>10:32:47.52</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>2.099131</td><td>SouthEast</td><td>02:57:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>2.031256</td><td>SouthEast</td><td>02:56:58 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.957105</td><td>SouthWest</td><td>10:32:06 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.957105</td><td>SouthCentral</td><td>10:32:06 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.941930</td><td>SouthEast</td><td>02:57:04 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.937502</td><td>SouthEast</td><td>02:56:41 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>1.930133</td><td>SouthCentral</td><td>10:32:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>1.930133</td><td>SouthWest</td><td>10:32:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.899180</td><td>SouthWest</td><td>10:32:10 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.899180</td><td>SouthCentral</td><td>10:32:10 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.895235</td><td>SouthCentral</td><td>10:32:21 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.895235</td><td>SouthWest</td><td>10:32:21 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.875342</td><td>SouthWest</td><td>10:32:12 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.875342</td><td>SouthCentral</td><td>10:32:12 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.869292</td><td>SouthCentral</td><td>10:32:36 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.869292</td><td>SouthWest</td><td>10:32:36 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.859384</td><td>SouthWest</td><td>10:32:19 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.859384</td><td>SouthCentral</td><td>10:32:19 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.858262</td><td>SouthCentral</td><td>10:32:32 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.858262</td><td>SouthWest</td><td>10:32:32 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.857935</td><td>SouthWest</td><td>10:32:29 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.857935</td><td>SouthCentral</td><td>10:32:29 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.
有时我也会得到如下输出
<html><body><H3>Web Report</H3>
<html><body><H3>Maximum Error count </H3>
<body>
<table>
<tr>
<th> Cluster </th>
<th> Direction </th>
<th> SouthSouthEast </th>
<th> SouthSouthCentral </th>
<th> SouthSouthWest </th></tr><tr><td>SouthSouthWest1</td><td>SouthSouthWest(RSM)</td><td>11</td><td>12.6</td><td>10.99</td></tr></table></body></tbody></html>
<body>
<head><style>
table {
border-collapse: collapse;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
</style>
</head>
<table>
<tr>
<th> SerName </th>
<th> IPAddress </th>
<th> SName </th>
<th> Status </th>
<th> TTaken </th>
<th> MName </th>
<th> TTime </th> </tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test Finish</td><td>45.000000</td><td>SouthEast</td><td> 2:57:24.81</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test end</td><td>43.000000</td><td>SouthCentral</td><td>10:32:47.52</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>HP</td><td>Test end</td><td>43.000000</td><td>SouthWest</td><td>10:32:47.52</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>2.099131</td><td>SouthEast</td><td>02:57:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>2.031256</td><td>SouthEast</td><td>02:56:58 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.957105</td><td>SouthWest</td><td>10:32:06 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.957105</td><td>SouthCentral</td><td>10:32:06 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.941930</td><td>SouthEast</td><td>02:57:04 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.937502</td><td>SouthEast</td><td>02:56:41 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>1.930133</td><td>SouthCentral</td><td>10:32:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>District</td><td>PASS</td><td>1.930133</td><td>SouthWest</td><td>10:32:08 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.899180</td><td>SouthWest</td><td>10:32:10 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.899180</td><td>SouthCentral</td><td>10:32:10 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.895235</td><td>SouthCentral</td><td>10:32:21 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.895235</td><td>SouthWest</td><td>10:32:21 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.875342</td><td>SouthWest</td><td>10:32:12 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>SOAP</td><td>PASS</td><td>1.875342</td><td>SouthCentral</td><td>10:32:12 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.869292</td><td>SouthCentral</td><td>10:32:36 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.869292</td><td>SouthWest</td><td>10:32:36 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.859384</td><td>SouthWest</td><td>10:32:19 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.859384</td><td>SouthCentral</td><td>10:32:19 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.858262</td><td>SouthCentral</td><td>10:32:32 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>XML</td><td>PASS</td><td>1.858262</td><td>SouthWest</td><td>10:32:32 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.857935</td><td>SouthWest</td><td>10:32:29 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.0.1</td><td>REST</td><td>PASS</td><td>1.857935</td><td>SouthCentral</td><td>10:32:29 AM</td></tr><tr><td>SouthSouthWest1</td><td>127.0.
===================================================================================================================
那么问题到底是什么呢?您有没有收到任何错误或什么?没有错误,我没有收到第二个HTML表,它只显示第一个带有HTML标记的查询作为输出,第二个没有反应。您没有收到第二个查询的任何结果的原因是-SameServiceDown表的任何列中都可能有空值。通过-Select*from SameServiceDownYes你是对的,表中没有记录,我只是添加了一些记录,现在它正在工作,非常感谢你指出我的错误。如果记录大小很大,一些记录会被跳过,并且不会显示在HTML表中,但是如果表中的记录较少,则意味着它会显示所有记录。原因可能是什么。