Transact-SQL 参考

sp_makewebtask

创建一项生成 HTML 文档的任务,该文档包含执行过的查询返回的数据。

说明  所有 Web 作业在企业管理器的"作业分类"对话框中都被归为 Web 助手。有关更多信息,请参见定义作业

语法

sp_makewebtask [@outputfile =] 'outputfile', [@query =] 'query'
    [, [@fixedfont =] fixedfont]
    [, [@bold =] bold]
    [, [@italic =] italic]
    [, [@colheaders =] colheaders]
    [, [@lastupdated =] lastupdated]
    [, [@HTMLheader =] HTMLheader]
    
[, [@username =] username]
    [, [@dbname =] dbname]
    [, [@templatefile =] 'templatefile']
    [, [@webpagetitle =] 'webpagetitle']
    [, [@resultstitle =] 'resultstitle']
    [
        
[, [@URL =] 'URL', [@reftext =] 'reftext']
        | [, [@table_urls =] table_urls, [@url_query =] 'url_query']
    ]
    
[, [@whentype =] whentype]
    [, [@targetdate =] targetdate]
    [, [@targettime =] targettime]
    [, [@dayflags =] dayflags]
    [, [@numunits =] numunits]
    [, [@unittype =] unittype]
    [, [@procname =] procname ]
    [, [@maketask =] maketask]
    [, [@rowcnt =] rowcnt]
    [, [@tabborder =] tabborder]
    [, [@singlerow =] singlerow]
    [, [@blobfmt =] blobfmt]
    [, [@nrowsperpage =] n]
    [, [@datachg =] table_column_list]
    [, [@charset =] characterset]
    [, [@codepage =] codepage]

参数

[@outputfile =] 'outputfile'

在 Microsoft® SQL Server™ 的实例上生成的 HTML 文件的位置。如果文档将在远程计算机上生成,则该参数可以是 UNC 名称。outputfile 的数据类型为 nvarchar(255),没有默认值。

[@query =] 'query'

要运行的查询。query 的数据类型为 ntext,没有默认值。当通过 sp_runwebtask 运行任务时,查询结果将以表格形式显示在 HTML 文档中。可以指定多个 SELECT 查询,从而导致在 outputfile 中显示多个表

[@fixedfont =] fixedfont

指定查询结果是以固定字体 (1) 还是以成比例字体 (0) 显示。fixedfont 的数据类型为 tinyint,默认值为 1。

[@bold =] bold

指定查询结果是以粗体 (1) 还是非粗体 (0) 显示。bold 的数据类型为 tinyint,默认值为 0。

[@italic =] italic

指定查询结果是以斜体 (1) 还是非斜体 (0) 显示。italic 的数据类型为 tinyint,默认值为 0。

[@colheaders =] colheaders

指定查询结果是带列标题 (1) 还是不带列标题 (0) 显示。colheaders 的数据类型为 tinyint,默认值为 1。

[@lastupdated =] lastupdated

指定所生成的 HTML 文档是否显示"上次更新时间:"时间戳指示上次更新的日期和时间 (1) 或者没有时间戳 (0)。在 HTML 文档中,时间戳出现在查询结果的前一行。lastupdated 的数据类型为 tinyint,默认值为 1。

[@HTMLHeader =] HTMLHeader

指定用于显示包含在 resultstitle 中的文本的 HTML 格式代码。HTMLheader 的数据类型为 tinyint,可以是下列值之一。

HTML 格式代码
1 H1
2 H2
3 H3
4 H4
5 H5
6 H6

[@username =] username

是执行查询的用户名。username 的数据类型为 nvarchar (128),默认设置为当前用户。系统管理员或数据库所有者可以指定其它用户名。

[@dbname =] dbname

在其上运行查询的数据库名。dbname 的数据类型为 nvarchar(128),默认值为当前数据库。

[@templatefile =] 'templatefile'

用于生成 HTML 文档的模板文件的路径。模板文件包含 HTML 文档的格式特征信息和标记 <%insert_data_here%>,该标记指示将查询结果添加到 HTML 表中的位置。templatefile 的数据类型为 nvarchar(255)

指定查询结果在模板文件中位置的方法有两种:

  1. 通过包含 <%insert_data_here%> 标记指定一个通用表格式,该标记指示将查询结果添加到 HTML 表中的位置。标记间没有间隔。当使用 <%insert_data_here%> 时,fixedfontbolditaliccolheaderstabborders 值都将应用于查询结果。

  2. 指定完整的行格式,以便生成更加精确的版面。使用 <%begindetail%> 和 <%enddetail%> 标记,并在这两个标记之间使用 <TR>、</TR>、<TD> 和 </TD> 这些 HTML 标记定义完整的行格式。对于每个要显示在结果集中的列,都插入 <%insert_data_here%> 标记。当使用完整行格式时,下列 sp_makewebtask 参数将被忽略:
    Bold lastupdated table_urls
    Colheaders reftext URL
    Fixedfont resultstitle url_query
    HTMLheader singlerow webpagetitle
    Italic tabborder  

    sp_makewebtask 所调用的扩展过程可以读取 Unicode 和非 Unicode 模板文件。如果 Unicode 文件包含签名标题,则该标题将在生成 HTML 文件时删除。

[@webpagetitle =] 'webpagetitle'

HTML 文档的标题。webpagetitle 的数据类型为 nvarchar(255),默认值为 SQL Server Web Assistant。对于空白标题,需要为标题指定两个空格字符,或通过编辑 HTML 源文件来删除 <TITLE> 和 </TITLE> 标记以及标记中间的标题文本。

[@resultstitle =] 'resultstitle'

HTML 文档中显示查询结果上方的标题。resultstitle 的数据类型为 nvarchar(255),默认值为 Query Results。

[@URL =] 'URL'

转到其它 HTML 文档的超级链接。该超级链接位于查询结果之后、HTML 文档末尾。URL 的数据类型为 nvarchar(255)。如果指定了 URL,也必须指定 reftext,但不能指定 table_urlsurl_query

[@reftext =] 'reftext'

说明该超级链接应将用户带往哪一个 HTML 文档的超级链接文本。reftext 的数据类型为 nvarchar(255)。超级链接文本说明了目的地,而超级链接地址来自 URL

[@table_urls =] table_urls

表示超级链接是否包含于 HTML 文档中并源于在 SQL Server 上执行的 SELECT 语句。table_urls 的数据类型为 tinyint,默认值为 0,该值说明查询将不生成超级链接。值为 1 说明将使用 url_query 生成一个超级链接列表。

重要  如果 table_urls1,则必须包含 url_query 以指定要执行的检索超级链接信息的查询,但不能指定 URLreftext

[@url_query =] 'url_query'

生成 URL 及其超级链接文本的 SELECT 语句。URL 和超级链接文本来源于 SQL Server 表。通过该参数,可以生成多个带有相关超级链接的 URL。与 table_urls 一起使用 url_queryurl_query 的数据类型为 nvarchar(255)url_query 必须返回一个包含两列的结果集:第一列为超级链接地址,第二列描述超级链接。插入 HTML 文档中的超级链接数等于执行 url_query 所返回的行数。

[@whentype =] whentype

指定何时运行创建 HTML 文档的任务。whentype 的数据类型为 tinyint,可以取下列值。

描述
1(默认值) 立即创建页。立即创建、执行 Web 作业,并在执行后立即删除。
2 以后创建页。立即创建用于创建 HTML 文档的存储过程,但 Web 作业的执行被延迟到 targetdatetargettime(可选)所指定的日期和时间。如果未指定 targettime,则在中午 12:00 执行 Web 作业。当 whentype2 时,targetdate 是必需的。目标日期和时间过后,此 Web 作业自动删除。
3 在一周中每隔 n 天创建页。HTML 文档在 dayflags 所指定的日期和 targettime(可选)所指定的时间创建,从 targetdate 所指定的日期开始。如果省略 targettime,默认值将为上午 12:00。当 whentype3 时,将要求 targetdate。在 dayflags 中指定一周中的哪一(些)天,并且一周可以指定不止一天。通过指定 whentype3 所创建的 Web 作业将不会自动删除,它将继续在一周中指定的那一(些)天运行,直到用户通过 sp_dropwebtask 删除它们。
4 每隔 n 分钟、小时、天或星期创建页。从 targetdatetargettime 所指定的时间开始每 n 时间段创建一次 HTML 文档。如果没有指定 targettime,Web 作业将在中午 12:00 执行。此时需要指定 targetdate。作业按 umunitsunittype 中的指定每 n 分钟、小时、天或星期自动运行,直到用户通过 sp_dropwebtask 删除它们。
5 按要求创建页。该过程是在没有自动调度的情况下创建的。用户通过运行 sp_runwebtask 创建 HTML 文档,并且只能用 sp_dropwebtask 来删除它。
6 立即和以后创建页。如同 whentype2 的情况,将立即创建和重新创建 HTML 文档。
7 立即以及在一周中每隔 n 天创建页。将立即创建和重新创建 HTML 文档,如同 whentype3,只是不要求 targetdate
8 立即创建页并从此定期创建。将立即创建和重新创建 HTML 文档,如同 whentype4,只是不要求 targetdate
9 立即和应请求创建页。将立即创建和重新创建 HTML 文档,如同 whentype5。必须手工删除该任务。
10 立即和在数据更改时创建页。立即创建页,并在以后表数据更改时创建页。此值要求 datachg

重要  当一项作业被调度为定期运行时,必须运行 SQL Server 代理;否则不会生成 HTML 页。

[@targetdate =] targetdate

指定生成页的日期。格式为 YYYYMMDD。当省略 targetdate 时,将使用当前日期。如果 whentype2(以后)、3(星期几)、4(定期)或 6(现在和以后),将要求 targetdatetargetdate 的数据类型为 int,默认值为 0。

[@targettime =] targettime

指定创建 HTML 文档的时间,targettime 的数据类型为 int,默认值为上午 12:00。格式为 HHMMSS。

[@dayflags =] dayflags

指定在一周中某天更新 HTML 文档。当 whentype3(星期几)或 7(现在和星期几)时,要求 dayflagsdayflags 的数据类型为 tinyint,可以是下列值之一。

星期
1(默认值) 星期日
2 星期一
4 星期二
8 星期三
16 星期四
32 星期五
64 星期六

若要指定多天,可以将这些值相加。例如,若要指定星期一和星期四,可以将 dayflags 设置为 18

[@numunits =] numunits

指定更新 HTML 文档的频率。numunits 只有在 whentype4(定期)或 8(现在和以后定期)时才使用。例如,如果 whentype4numunits6,并且 unittype1(小时),所指定的 HTML 文档将每 6 小时更新一次。numunits 的数据类型为 tinyint,默认值为 1。取值范围可从 1255

[@unittype =] unittype

指定当 numunits4(定期)或 whentype8(现在和以后)时,HTML 文档更新的频率。unittype 的数据类型为 tinyint,可以是下列值之一。

描述
1(默认值) 小时
2
3
4 分钟

[@procname =] procname

HTML 文档的过程或任务名称。如果没有指定 procname,通过 sp_makewebtask 生成的过程名称将呈现 Web_YYMMDDHHMMSS<spid> 的形式。如果 procname 由用户指定,则过程名称必须符合有效过程名称的条件,并且必须唯一。procname 的数据类型为 nvarchar(128)。如果 procname 太长,将被截断。

[@maketask =] maketask

指定是否要创建一个任务,以执行生成 HTML 文档的内部存储过程。maketask 的数据类型为 int,可以是下列值之一。

描述
0 生成一个未加密的存储过程但不创建任务。
1 生成一个加密的存储过程并创建任务。
2(默认值) 生成一个未加密的存储过程并创建任务。

[@rowcnt =] rowcnt

指定生成的 HTML 文档中所显示行的最大值。rowcnt 的数据类型为 int,默认值为 0,用来指定显示在 HTML 文档中满足给定查询的所有行。

[@tabborder =] tabborder

指定是否在结果表四周加边框。tabborder 的数据类型为 tinyint。如果 tabborder1(默认值),则加边框。如果为 0,则不加边框。

[@singlerow =] singlerow

指定结果是否以每页一行显示。singlerow 的数据类型为 tinyint。如果 singlerow0(默认值),则所有结果将在同一页的同一表中出现。如果 singlerow 1,将为结果集中的每个符合条件的行创建一个新的 HTML 页。在生成连续的 HTML 页时,将在指定的 output_filename 后添加一个数字。例如,如果 Web.html 是指定的输出文件名,则这些页将被命名为 Web1.html、Web2.html 等等。

[@blobfmt =] blobfmt

指定是将 ntextimage 数据类型的所有列嵌入同一的结果页(NULL,默认值),还是将这些列保存到其它页并通过 URL 链接到主 HTML 文档。blobfmt 的数据类型为 ntextimage

若要将 ntextimage 数据放到单独的 HTML 页,请使用以下格式为 blobfmt 指定值:

"%n% FILE=output_filename TPLT=template_filename URL=url_link_name..."

其中

n
是结果列表中与文本字段对应的列号,n+1 是单独的 ntextimage HTML 文件的 URL 超级链接文本。

说明  不要在等号 (=) 前后加空格,也不要将文件名放在引号 (') 内。

输出文件名以表示连续行的数字结尾,类似于 singlerowoutput_filename 是必需的,但 template_filenameurl_link_name 是可选的。FILE = output_filename 是输出文件位置的完整路径。如果提供,url_link_name 就是可以通过万维网访问的该文件的 http:// 链接。如果没有提供 url_link_name,将以 file:/// 标记开头的整个物理文件名作为 url_link_name。对于多个 textimage 列,可以重复使用 blobfmt (%n% FILE=...) 中相同的语法。

如果提供了 template_filename,使用 <%insert_data_here%> 方法可以表示数据的插入点。

URL 文本是结果集的一部分,而且始终是起始 ntextimage 列之后的那一列。URL 文本列不是以单独列在结果集中显示的。

[@nrowsperpage =] n

指定结果集应在多页中显示,每页中有 n 行,并且使用 NEXT 和 PREVIOUS URL 将连续页链接起来。n 的数据类型为 int,默认值为 0,表示所有结果都将显示在一页上。如果指定了 singlerow,则不能使用此参数。

[@datachg =] table_column_list

是数据改变时触发创建新页操作的表和可选列名称的列表。table_columns_list 的数据类型为 ntext。该值的格式为:

{TABLE=name[COLUMN=name]}[,...]

whentype10 时,该参数是必需的。通过此选项,为指定的表和列创建三个触发器(UPDATE、INSERT 和 DELETE),并通过激发这些触发器来执行 Web 任务。如果表中已有触发器,则 sp_runwebtask 将添加到触发器的结尾处(如果该触发器不是由 WITH ENCRYPTION 创建的),并且这个参数中的 COLUMN 字段说明将被忽略。如果表中有一个通过 WITH ENCRYPTION 选项创建的触发器,则 sp_makewebtask 将失败。

[@charset =] characterset

为 Microsoft Internet Explorer 或兼容的浏览器所识别的字符集别名代码。characterset 的数据类型为 nvarchar(25),默认值为 N'utf-8'。characterset 用来为 .htm 文件中的 META 元素字符集标记指定值。

[@codepage =] codepage

和字符集对应的数值。例如,代码页 65001 和字符集 UTF-8 对应。codepage 的数据类型为 int,默认值为 65001。要得到所支持的代码页的完整列表,请使用 sp_enumcodepages

返回代码值

0(成功)或非零(失败)

重要  和以前版本的 Microsoft SQL Server 相比,返回代码值有所改变。

结果集

注释

对于调度的任务,所有错误都在有关 SQL Server 实例的 Microsoft Windows NT® 应用程序日志中报告,且都有一个 xpsqlweb 源文件。

重要  sp_dropwebtasksp_makewebtasksp_runwebtask 存储过程只能在 SQL Server 6.5 或更高版本上运行。

SQL Server Web 助手提供了一个使用 sp_makewebtask 存储过程的接口。有关使用 Web 助手创建 Web 页的更多信息,请参见使用 Web 助手向导

HTML 文档可以使用的字体取决于 Web 浏览器软件的功能。有关字体可用性和 HTML 格式的更多信息,请参见浏览器软件文档。

重要  Microsoft Windows® 95 和 Microsoft Windows 98 Web 助手的所有用户在所用数据库中必须有用户帐户。使用 sp_adduser 向每个用户可能访问的数据库添加帐户。当运行 Windows 95/98 操作系统时,按需分配任务只能由任务所有者或系统管理员运行。

权限

用户必须有运行指定查询所需的 SELECT 权限,并在要运行该查询的数据库中有 CREATE PROCEDURE 权限。SQL Server 帐户必须具有将生成的 HTML 文档写入指定位置的权限。只有 sysadmin 固定服务器角色的成员才可以模拟其他用户。

示例
A. 使用模板文件创建多个查询

下例创建一个 HTML 文档,并按要求检索五本书的书名和价格、五个出版商的名称和五位作者的姓名。在本文档中,数据位置由 <%insert_data_here%> 标记指定。

本节显示了名为 C:\Web\Multiple.tpl 的模板文件。

说明  为使本示例正常运行,此处提供的模板文件代码必须保存在名为 C:\Web\Multiple.tpl 的文件中。在将模板保存在 C:\Web 目录之前,还需先创建 C:\Web 目录。

<HTML>
  
<HEAD>
  
<TITLE>SQL Server Multiple Queries with Template Web Sample</TITLE>
  
<BODY>
  
<H1>Books For Sale</H1>
<HR>
  
  
<P>
<TABLE BORDER>
<TR> <TH><I>Title</I></TH> <TH><B>Price</B></TH> </TR>
<%begindetail%>
<TR> <TD><I> <%insert_data_here%> </I> </TD>
    <TD ALIGN=RIGHT><B> $<%insert_data_here%></B></TD> </TR>
<%enddetail%>
</TABLE>
<P>
  
<HR>
  
<%insert_data_here%>
  
  
<P>
  
<TABLE BORDER>
<TR> <TH ALIGN=CENTER>ID</TH> <TH ALIGN=LEFT><I>Publisher's Name</I></TH> </TR>
<%begindetail%>
<TR> <TD> <%insert_data_here%> </TD>
    <TD ALIGN=LEFT><I> <%insert_data_here%></I></TD> </TR>
<%enddetail%>
</TABLE>
  
<HR>
  
<%insert_data_here%>
  
  
<P>
  
  
<A HREF = "http://www.microsoft.com">Microsoft</A><P>
<A HREF = "http://msdn.microsoft.com">MSDN</A><P>
  
  
</BODY>
  
</HTML>

本示例的下面这部分显示使用 sp_makewebtask 执行查询。

USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\MULTIPLE.HTM',
@query = 'SELECT title, price FROM titles SELECT au_lname, au_fname 
FROM authors SELECT pub_id, pub_name FROM publishers SELECT au_lname, 
au_fname FROM authors', @templatefile = 'C:\WEB\MULTIPLE.TPL',
@dbname = 'pubs', @rowcnt = 5, @whentype = 9
GO

下面是结果集:

<HTML>
  
<HEAD>
  
<TITLE>SQL Server Multiple Queries with Template Web Sample</TITLE>
  
<BODY>
  
<H1>Books For Sale</H1>
<HR>
  
  
<P>
<TABLE BORDER>
<TR> <TH><I>Title</I></TH> <TH><B>Price</B></TH> </TR>

<TR> <TD><I> The Busy Executive's Database Guide </I> </TD>
    <TD ALIGN=RIGHT><B> $19.9900</B></TD> </TR>

<TR> <TD><I> Cooking with Computers: Surreptitious Balance Sheets </I> </TD>
    <TD ALIGN=RIGHT><B> $11.9500</B></TD> </TR>

<TR> <TD><I> You Can Combat Computer Stress! </I> </TD>
    <TD ALIGN=RIGHT><B> $2.9900</B></TD> </TR>

<TR> <TD><I> Straight Talk About Computers </I> </TD>
    <TD ALIGN=RIGHT><B> $19.9900</B></TD> </TR>

<TR> <TD><I> Silicon Valley Gastronomic Treats </I> </TD>
    <TD ALIGN=RIGHT><B> $19.9900</B></TD> </TR>

</TABLE>
<P>
  
<HR>
  

<P>
<P><TABLE BORDER=1>
<TR><TH ALIGN=LEFT>au_lname</TH><TH ALIGN=LEFT>au_fname</TH></TR>
<TR><TD><TT>Bennet</TT></TD><TD><TT>Abraham</TT></TD></TR>
<TR><TD><TT>Blotchet-Halls</TT></TD><TD><TT>Reginald</TT></TD></TR>
<TR><TD><TT>Carson</TT></TD><TD><TT>Cheryl</TT></TD></TR>
<TR><TD><TT>DeFrance</TT></TD><TD><TT>Michel</TT></TD></TR>
<TR><TD><TT>del Castillo</TT></TD><TD><TT>Innes</TT></TD></TR>
</TABLE>
<HR>

  
  
<P>
  
<TABLE BORDER>
<TR> <TH ALIGN=CENTER>ID</TH> <TH ALIGN=LEFT><I>Publisher's Name</I></TH> </TR>

<TR> <TD> 0736 </TD>
    <TD ALIGN=LEFT><I> New Moon Books</I></TD> </TR>

<TR> <TD> 0877 </TD>
    <TD ALIGN=LEFT><I> Binnet & Hardley</I></TD> </TR>

<TR> <TD> 1389 </TD>
    <TD ALIGN=LEFT><I> Algodata Infosystems</I></TD> </TR>

<TR> <TD> 1622 </TD>
    <TD ALIGN=LEFT><I> Five Lakes Publishing</I></TD> </TR>

<TR> <TD> 1756 </TD>
    <TD ALIGN=LEFT><I> Ramona Publishers</I></TD> </TR>

</TABLE>
  
<HR>
  

<P>
<P><TABLE BORDER=1>
<TR><TH ALIGN=LEFT>au_lname</TH><TH ALIGN=LEFT>au_fname</TH></TR>
<TR><TD><TT>Bennet</TT></TD><TD><TT>Abraham</TT></TD></TR>
<TR><TD><TT>Blotchet-Halls</TT></TD><TD><TT>Reginald</TT></TD></TR>
<TR><TD><TT>Carson</TT></TD><TD><TT>Cheryl</TT></TD></TR>
<TR><TD><TT>DeFrance</TT></TD><TD><TT>Michel</TT></TD></TR>
<TR><TD><TT>del Castillo</TT></TD><TD><TT>Innes</TT></TD></TR>
</TABLE>
<HR>

  
  
<P>
  
  
<A HREF = "http://www.microsoft.com">Microsoft</A><P>
<A HREF = "http://msdn.microsoft.com">MSDN</A><P>
  
  
</BODY>
  
</HTML>
B. 创建超级链接

下面的示例创建一个称作 my_favorite_sites 的两列表。第一列 url_def 指定 Web 位置的 URL,第二列 display_text 是对应 URL 的超级链接文本。创建表并填入值后,便创建 HTML 文档。

USE pubs
GO
CREATE TABLE my_favorite_web_sites(url_def varchar(255), display_text varchar(255) NULL)
GO
INSERT my_favorite_web_sites(url_def, display_text) 
VALUES ('http://www.microsoft.com', 'Microsoft Home Page')
INSERT my_favorite_web_sites(url_def) VALUES ('http://www.widgets.microsoft.com')
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\URL.HTM', 
@query='SELECT title, price FROM titles ORDER BY price desc', 
@table_urls = 1, @tabborder = 0, @lastupdated=0, @colheaders = 0, 
@url_query= 'SELECT url_def, display_text FROM 
my_favorite_web_sites', @whentype = 9
GO

下面是结果集:

<HTML>

<HEAD>

<TITLE>Microsoft SQL Server Web Assistant</TITLE>

</HEAD>

<BODY>

<H1>Query Results</H1>
<HR>

<P>
<P><TABLE BORDER=0>
<TR><TD><TT>But Is It User Friendly?</TT></TD><TD><TT>22.9500</TT></TD></TR>
<TR><TD><TT>Computer Phobic AND Non-Phobic Individuals: Behavior Variations</TT></TD><TD><TT>21.5900</TT></TD></TR>
<TR><TD><TT>Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean</TT></TD><TD><TT>20.9500</TT></TD></TR>
<TR><TD><TT>Secrets of Silicon Valley</TT></TD><TD><TT>20.0000</TT></TD></TR>
<TR><TD><TT>The Busy Executive's Database Guide</TT></TD><TD><TT>19.9900</TT></TD></TR>
<TR><TD><TT>Straight Talk About Computers</TT></TD><TD><TT>19.9900</TT></TD></TR>
<TR><TD><TT>Silicon Valley Gastronomic Treats</TT></TD><TD><TT>19.9900</TT></TD></TR>
<TR><TD><TT>Prolonged Data Deprivation: Four Case Studies</TT></TD><TD><TT>19.9900</TT></TD></TR>
<TR><TD><TT>Sushi, Anyone?</TT></TD><TD><TT>14.9900</TT></TD></TR>
<TR><TD><TT>Cooking with Computers: Surreptitious Balance Sheets</TT></TD><TD><TT>11.9500</TT></TD></TR>
<TR><TD><TT>Fifty Years in Buckingham Palace Kitchens</TT></TD><TD><TT>11.9500</TT></TD></TR>
<TR><TD><TT>Is Anger the Enemy?</TT></TD><TD><TT>10.9500</TT></TD></TR>
<TR><TD><TT>Emotional Security: A New Algorithm</TT></TD><TD><TT>7.9900</TT></TD></TR>
<TR><TD><TT>Life Without Fear</TT></TD><TD><TT>7.0000</TT></TD></TR>
<TR><TD><TT>You Can Combat Computer Stress!</TT></TD><TD><TT>2.9900</TT></TD></TR>
<TR><TD><TT>The Gourmet Microwave</TT></TD><TD><TT>2.9900</TT></TD></TR>
<TR><TD><TT>The Psychology of Computer Cooking</TT></TD><TD>n/a</TD></TR>
<TR><TD><TT>Net Etiquette</TT></TD><TD>n/a</TD></TR>
</TABLE>
<HR>
<A HREF = "http://www.microsoft.com">Microsoft Home Page</A><P>
<A HREF = "http://www.widgets.microsoft.com">http://www.widgets.microsoft.com</A><P>


</BODY>

</HTML>
C. 以单行模式执行多个查询

下面的示例通过多个查询创建 8 个 HTML 文档,并使用单行模式。

以下是查询语句:

USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\SROW.HTM', 
@query = 'SELECT title, price FROM titles ORDER BY price desc 
SELECT au_lname, au_fname FROM authors WHERE state = ''CA'' ', 
@fixedfont = 0, @webpagetitle = 'Single row SQL Web Assistant', 
@resultstitle = 'One row per page results', @singlerow = 1, 
@rowcnt = 4,@URL = "http://www.microsoft.com", 
@reftext = 'Microsoft Home Page'
GO

以下是结果集的第一个文件(名为 C:\Web\Srow1.htm):

<HTML>

<HEAD>

<TITLE>Single row SQL Web Assistant</TITLE>

</HEAD>

<BODY>

<H1>One row per page results</H1>
<HR>

<PRE>Last updated: Jun 17 1997  9:14AM</PRE>

<P>
<P><TABLE BORDER=1>
<TR><TH ALIGN=LEFT>title</TH><TH ALIGN=LEFT>price</TH></TR>
<TR><TD>But Is It User Friendly?</TD><TD>22.9500</TD></TR>
</TABLE>
<HR>
<A HREF = "http://www.microsoft.com">Microsoft Home Page</A><P>
<TABLE BORDER=0 CELLPADDING=6>
<TR><TD>More results can be found in:</TD>
<TD><A HREF = "SROW2.HTM">Next</A></TD>
</TR></TABLE>

</BODY>

</HTML>

以下是结果集的第二个文件(名为 C:\Web\Srow2.htm):

<HTML>

<HEAD>

<TITLE>Single row SQL Web Assistant</TITLE>

</HEAD>

<BODY>

<H1>One row per page results</H1>
<HR>

<PRE>Last updated: Jun 17 1997  9:14AM</PRE>

<P>
<P><TABLE BORDER=1>
<TR><TH ALIGN=LEFT>title</TH><TH ALIGN=LEFT>price</TH></TR>
<TR><TD>Computer Phobic AND Non-Phobic Individuals: Behavior Variations</TD><TD>21.5900</TD></TR>
</TABLE>
<HR>
<A HREF = "http://www.microsoft.com">Microsoft Home Page</A><P>
<TABLE BORDER=0 CELLPADDING=6>
<TR><TD>More results can be found in:</TD>
<TD><A HREF = "SROW1.HTM">First</A></TD>
<TD><A HREF = "SROW1.HTM">Previous</A></TD>
<TD><A HREF = "SROW3.HTM">Next</A></TD>
</TR></TABLE>

</BODY>

</HTML>
D.使用数据插入标记和模板执行多个查询

下面的示例通过模板用多个查询语句创建两个 HTML 文档,所使用的模板将每本书的书名和价格放在单独的 HTML 文档中。

以下是名为 C:\Web\Datains.tpl 的模板文档:

<HTML>
  
<HEAD>
  
<TITLE>SQL Server Multiple Queries, Data Insert Markers, & Template Web Sample</TITLE>
  
<BODY>
  
<H1>Books For Sale</H1>
<HR>
  
  
<P>
<TABLE BORDER>
<TR> <TH><I>Title</I></TH> <TH><B>Price</B></TH> </TR>
<%begindetail%>
<TR> <TD><I> <%insert_data_here%> </I> </TD>
    <TD ALIGN=RIGHT><B> $<%insert_data_here%></B></TD> </TR>
<%enddetail%>
</TABLE>
<P>
  
<HR>
  
  
<A HREF = "http://www.microsoft.com">Microsoft</A><P>
<A HREF = "http://msdn.microsoft.com">MSDN</A><P>
  
</BODY>
  
</HTML>

以下是查询语句:

USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\DATAINS.HTM',
@query = 'SELECT title, price FROM titles', 
@templatefile = 'C:\WEB\DATAINS.TPL', @dbname = 'pubs', 
@rowcnt = 2, @whentype = 9, @singlerow = 1
GO

以下是结果集的第一个文件(名为 C:\Web\Datains1.htm):

<HTML>
  
<HEAD>
  
<TITLE>SQL Server Multiple Queries, Data Insert Markers, & Template Web Sample</TITLE>
  
<BODY>
  
<H1>Books For Sale</H1>
<HR>
  
  
<P>
<TABLE BORDER>
<TR> <TH><I>Title</I></TH> <TH><B>Price</B></TH> </TR>

<TR> <TD><I> The Busy Executive's Database Guide </I> </TD>
    <TD ALIGN=RIGHT><B> $19.9900</B></TD> </TR>

</TABLE>
<P>
  
<HR>
  
  
<A HREF = "http://www.microsoft.com">Microsoft</A><P>
<A HREF = "http://msdn.microsoft.com">MSDN</A><P>
  
<TABLE BORDER=0 CELLPADDING=6>
<TR><TD>More results can be found in:</TD>
<TD><A HREF = "DATAINS2.HTM">Next</A></TD>
</TR></TABLE></BODY>
  
</HTML>

以下是结果集的第二个文件(名为 C:\Web\Datains2.htm):

<HTML>
  
<HEAD>
  
<TITLE>SQL Server Multiple Queries, Data Insert Markers, & Template Web Sample</TITLE>
  
<BODY>
  
<H1>Books For Sale</H1>
<HR>
  
  
<P>
<TABLE BORDER>
<TR> <TH><I>Title</I></TH> <TH><B>Price</B></TH> </TR>

<TR> <TD><I> Cooking with Computers: Surreptitious Balance Sheets </I> </TD>
    <TD ALIGN=RIGHT><B> $11.9500</B></TD> </TR>

</TABLE>
<P>
  
<HR>
  
  
<A HREF = "http://www.microsoft.com">Microsoft</A><P>
<A HREF = "http://msdn.microsoft.com">MSDN</A><P>
  
<TABLE BORDER=0 CELLPADDING=6>
<TR><TD>More results can be found in:</TD>
<TD><A HREF = "DATAINS1.HTM">First</A></TD>
<TD><A HREF = "DATAINS1.HTM">Previous</A></TD>
</TR></TABLE></BODY>
  
</HTML>
E. 使用 @blobfmt 执行查询

下面的示例执行查询,并将信息放在 HTML 文档中。publishers 表与 pub_info 表链接,在 HTM 文档中提供公司徽标。

以下是名为 C:\Web\Blobsmp.tpl 的模板文件:

<HTML>

<HEAD>

<TITLE>Publishers PR Info</TITLE>

</HEAD>


<BODY>

<HR>

<PRE>

<%insert_data_here%>


</PRE>


</BODY>

</HTML>

以下是查询语句:

USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\BLOBSMP.HTM',    
@query = 'SELECT pr_info, pub_name, city, state, country, logo, 
pub_info.pub_id FROM pub_info, publishers 
WHERE pub_info.pub_id = publishers.pub_id', 
@webpagetitle = 'Publishers Home Page', 
@resultstitle = 'Premier Publishers and Their Home Page Links', 
@whentype = 9, @blobfmt='%1% FILE=C:\WEB\BLOBSMP.HTM 
TPLT=C:\WEB\BLOBSMP.TPL %6% FILE=C:\WEB\PUBLOGO.GIF', @rowcnt = 2
GO

以下是主 HTML 文档 Blobsmp.htm,其中包含徽标位图和出版商主页的超级链接:

<HTML>

<HEAD>

<TITLE>Publishers Home Page</TITLE>

<BODY>

<H1>Premier Publishers and Their Home Page Links</H1>
<HR>

<PRE><TT>Last updated: Jun 28 1996  3:15PM</TT></PRE>

<P>
<P><TABLE BORDER=1>
<TR><TH ALIGN=LEFT>pr_info</TH><TH ALIGN=LEFT>city</TH><TH ALIGN=LEFT>state</TH><TH ALIGN=LEFT>country</TH><TH ALIGN=LEFT>logo</TH></TR>
<TR><TD NOWRAP><A HREF = "file:///c:\web\blobfmt1.htm">New Moon Books</A></TD><TD NOWRAP><TT>Boston</TT></TD><TD NOWRAP><TT>MA</TT></TD><TD NOWRAP><TT>USA</TT></TD><TD NOWRAP><A HREF = "file:///c:\web\publogo1.gif">0736</A></TD></TR>
<TR><TD NOWRAP><A HREF = "file:///c:\web\blobfmt2.htm">Binnet & Hardley</A></TD><TD NOWRAP><TT>Washington</TT></TD><TD NOWRAP><TT>DC</TT></TD><TD NOWRAP><TT>USA</TT></TD><TD NOWRAP><A HREF = "file:///c:\web\publogo2.gif">0877</A></TD></TR>
</TABLE>
<HR>


</BODY>

</HTML>

以下是结果集中第一个文件(名为 C:\Web\Blobsmp1.htm)的开头几行:

说明  此处并未显示所有输出行。完整的输出显示在 C:\Web\Blobsmp1.htm 中。

<HTML>

<HEAD>

<TITLE>Publishers PR Info</TITLE>

</HEAD>


<BODY>

<HR>

<PRE>

This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts.

...

This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts.


</PRE>


</BODY>

</HTML>

以下是结果集的第二个文件(名为 C:\Web\Blobsmp2.htm):

<HTML>

<HEAD>

<TITLE>Publishers PR Info</TITLE>

</HEAD>


<BODY>

<HR>

<PRE>

This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C.

...

This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C.




</PRE>


</BODY>

</HTML>

请参见

sp_enumcodepages

sp_runwebtask

系统存储过程