用end中断过程,行的丢失,您只有一个用于@ColumnHeader,但不用于其余行。请将HTML结果添加到您的帖子中(不仅仅是屏幕截图)@AMINCHAR HTML结果现在已添加。感谢您关注此问题。我已经添加了输出的HTML代码。 USE master

用end中断过程,行的丢失,您只有一个用于@ColumnHeader,但不用于其余行。请将HTML结果添加到您的帖子中(不仅仅是屏幕截图)@AMINCHAR HTML结果现在已添加。感谢您关注此问题。我已经添加了输出的HTML代码。 USE master ,html,sql,sql-server,stored-procedures,html-table,Html,Sql,Sql Server,Stored Procedures,Html Table,用end中断过程,行的丢失,您只有一个用于@ColumnHeader,但不用于其余行。请将HTML结果添加到您的帖子中(不仅仅是屏幕截图)@AMINCHAR HTML结果现在已添加。感谢您关注此问题。我已经添加了输出的HTML代码。 USE master GO IF EXISTS ( SELECT * FROM sys.objects WHERE objects.object_id = OBJECT_ID(


end

中断过程,行的
丢失,您只有一个
用于@ColumnHeader,但不用于其余行。请将HTML结果添加到您的帖子中(不仅仅是屏幕截图)@AMINCHAR HTML结果现在已添加。感谢您关注此问题。我已经添加了输出的HTML代码。
USE master
GO

IF EXISTS (   SELECT *
          FROM   sys.objects
          WHERE  objects.object_id = OBJECT_ID(
                                         N'[dbo].[sp_GenerateHTMLTableResults]')
                 AND objects.type IN (N'P', N'PC'))
DROP PROCEDURE [dbo].[sp_GenerateHTMLTableResults]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

IF NOT EXISTS (   SELECT *
              FROM   sys.objects
              WHERE  objects.object_id = OBJECT_ID(
                                             N'[dbo].  [sp_GenerateHTMLTableResults]')
                     AND objects.type IN (N'P', N'PC'))
BEGIN
    EXEC sys.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_GenerateHTMLTableResults] AS'
END
GO

ALTER PROCEDURE [dbo].[sp_GenerateHTMLTableResults]
(
    @ResultsTableName NVARCHAR(100) ,
    @GeneratedHTML NVARCHAR(MAX) OUTPUT
)
AS
  BEGIN
    DECLARE @BaseSQL NVARCHAR(MAX)
    DECLARE @SQL NVARCHAR(MAX)
    DECLARE @ColumnHeader NVARCHAR(MAX) = ''
    DECLARE @TableResults NVARCHAR(MAX) = ''
    DECLARE @ParmDefinition NVARCHAR(MAX)
    DECLARE @BodyHTML NVARCHAR(MAX)
    DECLARE @TableColumns TABLE
        (
            ColumnName NVARCHAR(MAX)
        )

    SET @BaseSQL = 'SELECT TN.N.value(''local-name(.)'', ''sysname'') AS ColumnName FROM (SELECT TV.* FROM ( SELECT 1 ) AS D(N) OUTER APPLY (SELECT TOP ( 0 ) * FROM '
                   + @ResultsTableName
                   + ' ) AS TV FOR XML PATH(''''), ELEMENTS XSINIL, TYPE ) AS TX(X) CROSS APPLY TX.X.nodes(''*'') AS TN(N)'

    INSERT INTO @TableColumns ( ColumnName )
    EXECUTE sys.sp_executesql @BaseSQL

    SET @SQL = ' SELECT @Columns = isnull(@Columns,'''') + ''<th>'' +ColumnName + ''</th>'' FROM ('
               + @BaseSQL + ') a'

    SET @ParmDefinition = N'@Columns nvarchar(max) OUTPUT';

    EXECUTE sys.sp_executesql @SQL ,
                              @ParmDefinition ,
                              @Columns = @ColumnHeader OUTPUT;

    SET @ColumnHeader = '<table cellpadding="2" cellspacing="2" border="1" style="font-family: Arial; font-size: 8pt"><TR>'
                        + @ColumnHeader + '</TR>'

    SET @SQL = 'SELECT @BodyHTML = CAST((SELECT td = '

    SELECT @SQL = @SQL + 'CAST(' + tc.ColumnName + ' as nvarchar(max)) '
                  + '+''</td><td>''+'
    FROM   @TableColumns AS tc

    SET @SQL = LEFT(@SQL, LEN(@SQL) - 13) + ' FROM ( SELECT * FROM '
               + @ResultsTableName
               + ' ) AS d FOR XML PATH(''tr''), TYPE ) AS VARCHAR(MAX))'

    SET @ParmDefinition = N'@BodyHTML nvarchar(max) OUTPUT';

    EXECUTE sys.sp_executesql @SQL ,
                              @ParmDefinition ,
                              @BodyHTML = @BodyHTML OUTPUT;

    SET @GeneratedHTML = @ColumnHeader
                         + REPLACE(
                               REPLACE(@BodyHTML, '<', '<') ,
                               '>' ,
                               '>') + '<table>'
END


GO

  EXEC sys.sp_MS_marksystemobject sp_GenerateHTMLTableResults

GO
<table class=MsoNormalTable border=1 cellpadding=0 style='mso-cellspacing:1.2pt;
 mso-yfti-tbllook:1184;mso-padding-alt:1.2pt 1.2pt 1.2pt 1.2pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>StayYear<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Market<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Jan<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Feb<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Mar<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Apr<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>May<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Jun<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Jul<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Aug<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Sep<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Oct<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Nov<o:p></o:p></span></b></p>
  </td>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal align=center style='text-align:center'><b><span
  style='font-size:8.0pt;font-family:"Arial",sans-serif'>Dec<o:p></o:p></span></b></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal><span style='font-size:8.0pt;font-family:"Arial",sans-serif'>2017&lt;/td&gt;&lt;td&gt;France&lt;/td&gt;&lt;td&gt;340&lt;/td&gt;&lt;td&gt;470&lt;/td&gt;&lt;td&gt;390&lt;/td&gt;&lt;td&gt;293&lt;/td&gt;&lt;td&gt;188&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;62&lt;/td&gt;&lt;td&gt;71&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;77&lt;/td&gt;&lt;td&gt;17<o:p></o:p></span></p>
  </td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal><span style='font-size:8.0pt;font-family:"Arial",sans-serif'>2018&lt;/td&gt;&lt;td&gt;France&lt;/td&gt;&lt;td&gt;534&lt;/td&gt;&lt;td&gt;558&lt;/td&gt;&lt;td&gt;420&lt;/td&gt;&lt;td&gt;608&lt;/td&gt;&lt;td&gt;413&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;71&lt;/td&gt;&lt;td&gt;238&lt;/td&gt;&lt;td&gt;48&lt;/td&gt;&lt;td&gt;110&lt;/td&gt;&lt;td&gt;44&lt;/td&gt;&lt;td&gt;76<o:p></o:p></span></p>
  </td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
 </tr>
 <tr style='mso-yfti-irow:3'>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal><span style='font-size:8.0pt;font-family:"Arial",sans-serif'>2017&lt;/td&gt;&lt;td&gt;United
  Kingdom&lt;/td&gt;&lt;td&gt;1298&lt;/td&gt;&lt;td&gt;910&lt;/td&gt;&lt;td&gt;1289&lt;/td&gt;&lt;td&gt;1720&lt;/td&gt;&lt;td&gt;1165&lt;/td&gt;&lt;td&gt;1112&lt;/td&gt;&lt;td&gt;793&lt;/td&gt;&lt;td&gt;1045&lt;/td&gt;&lt;td&gt;1419&lt;/td&gt;&lt;td&gt;862&lt;/td&gt;&lt;td&gt;752&lt;/td&gt;&lt;td&gt;226<o:p></o:p></span></p>
  </td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'></td>
 </tr>
 <tr style='mso-yfti-irow:4;mso-yfti-lastrow:yes'>
  <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal><span style='font-size:8.0pt;font-family:"Arial",sans-serif'>2018&lt;/td&gt;&lt;td&gt;United
  Kingdom&lt;/td&gt;&lt;td&gt;874&lt;/td&gt;&lt;td&gt;777&lt;/td&gt;&lt;td&gt;1389&lt;/td&gt;&lt;td&gt;1896&lt;/td&gt;&lt;td&gt;1229&lt;/td&gt;&lt;td&gt;916&lt;/td&gt;&lt;td&gt;886&lt;/td&gt;&lt;td&gt;1225&lt;/td&gt;&lt;td&gt;1360&lt;/td&gt;&lt;td&gt;961&lt;/td&gt;&lt;td&gt;770&lt;/td&gt;&lt;td&gt;328<o:p></o:p></span></p>
  </td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <table class=MsoNormalTable border=0 cellspacing=3 cellpadding=0
   style='mso-cellspacing:1.5pt;mso-yfti-tbllook:1184'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
    <td style='padding:.75pt .75pt .75pt .75pt'></td>
   </tr>
  </table>
 <td style='padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <p class=MsoNormal><span style='font-size:8.0pt;font-family:"Arial",sans-serif'>2017&lt;/td&gt;&lt;td&gt;France&lt;/td&gt;&lt;td&gt;340&lt;/td&gt;&lt;td&gt;470&lt;/td&gt;&lt;td&gt;390&lt;/td&gt;&lt;td&gt;293&lt;/td&gt;&lt;td&gt;188&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;62&lt;/td&gt;&lt;td&gt;71&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;77&lt;/td&gt;&lt;td&gt;17<o:p></o:p></span></p>
  </td> 
Kingdom&lt;/td&gt;&lt;td&gt;874&lt;/td&gt;&lt;td&gt;777&lt;/td&gt;&lt;td&gt;1389&lt;/td&gt;&lt;td&gt;1896&lt;/td&gt;&lt;td&gt;1229&lt;/td&gt;&lt;td&gt;916&lt;/td&gt;&lt;td&gt;886&lt;/td&gt;&lt;td&gt;1225&lt;/td&gt;&lt;td&gt;1360&lt;/td&gt;&lt;td&gt;961&lt;/td&gt;&lt;td&gt;770&lt;/td&gt;&lt;td&gt;328<o:p></o:p></span></p>
  </td>
  <td style='border:none;padding:1.2pt 1.2pt 1.2pt 1.2pt'>
  <table class=MsoNormalTable border=0 cellspacing=3 cellpadding=0
   style='mso-cellspacing:1.5pt;mso-yfti-tbllook:1184'>
   <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
    <td style='padding:.75pt .75pt .75pt .75pt'></td>
   </tr>
  </table>