使用sql将参数插入HTML

时间:2014-12-01 12:07:41

标签: html sql

我有一个sql作业,每24小时运行一次,并发送一封电子邮件,其中包含从我的数据库表中请求的数据。我正在将数据插入:

DECLARE @ReportContentBuilder   table(LineSequence int identity, Line varchar(2000))

像这样:

INSERT INTO @ReportContentBuilder VALUES('<html>')
INSERT INTO @ReportContentBuilder VALUES('<head>')
INSERT INTO @ReportContentBuilder VALUES('<style type="text/css">')
INSERT INTO @ReportContentBuilder VALUES('body{font-family: Calibri; font-size: 10pt;}')
INSERT INTO @ReportContentBuilder VALUES('</style>')
INSERT INTO @ReportContentBuilder VALUES('</head>')
INSERT INTO @ReportContentBuilder VALUES('<body>')

发送电子邮件的所有内容都很好,我按预期收到所有数据。它只是我的表标题都是一样的。

WHILE (@MessageTypeCount > 0)
BEGIN
-- SET a parameter here to use as Id
    INSERT INTO @ReportContentBuilder VALUES('<table cellpadding="2" border="1">')
    INSERT INTO @ReportContentBuilder VALUES('<caption><b>Id</b></caption>')

-- Etc. etc. all the rest of the code works
END

我有一个While循环,并希望将参数传递到 Id 部分,因此每个循环的表格标题会有所不同。

问题:

如何将值传递到代码的Html部分以在我的电子邮件中接收不同的表格标题?

我希望这很清楚,我已经添加了足够的信息。

1 个答案:

答案 0 :(得分:1)

如果我做对了,这将有所帮助(假设MSSQL):

DECLARE @Id AS INT
SET @Id = 1

WHILE (@MessageTypeCount > 0)
BEGIN
-- SET a parameter here to use as Id

    INSERT INTO @ReportContentBuilder VALUES('<table cellpadding="2" border="1">')
    INSERT INTO @ReportContentBuilder VALUES('<caption><b>' + cast(@Id as VARCHAR(3)) + '</b></caption>')

    SET @Id = @Id + 1 /* Or SET @Id += 1 */
-- Etc. etc. all the rest of the code works
END

变量@Id将作为示例,您将通过auto_increment值区分每次运行。在第二个插入中,您将打破文字字符串,将其与@Id的varchar值连接(如果您不转换或强制转换它,它可能会尝试向字符串添加一个数字,那将是肯定会破坏脚本),并在Id之后添加其余的HTML。