Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将查询的输出转换为多个HTML表以发送电子邮件_Sql_Sql Server - Fatal编程技术网

Sql 如何将查询的输出转换为多个HTML表以发送电子邮件

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','',

我正在进行自动化设置,每10分钟运行一次批处理文件,因此报告将以HTML格式发送结果,如果记录大小较小,我可以获得输出,例如:10行,如果记录或更多,则我只能看到最小数据,例:如果我有30行数据要通过邮件发送,那么下面的代码显示了15行,并且它误导了第一个表和标题的安排

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表中,但是如果表中的记录较少,则意味着它会显示所有记录。原因可能是什么。