我的查询更复杂,但基本上为我创建了一个HTML页面。
DECLARE @indSubject varchar(7)
SET @indSubject = '61-0036'
-- LOTS of query stuff here that makes a page. For simplicity
-- just use this:
SELECT '<html><body>' + @indSubject + '</body></html>'
我想做两件事:
我可以用BCP这样做吗?其他一些方式?
请注意,这是我个人的所有内容,并没有部署在网络服务器上,因此我不必非常担心安全性,SQL注入等(至少我希望我不会这样做) ;!吨)
答案 0 :(得分:2)
您可以使用SQLCMD来轻松完成此任务。
如果将现有查询保存为.sql文件,则可以使用SQLCMD执行此操作。
此外,SQLCMD将允许您在.sql文件${indSubject}
中指定一个变量,然后可以从命令行提供该变量。
最后,使用-o
开关,您可以将结果直接输出到文件,并且可以使用以下环境设置来抑制结果集上的标题:
:SETVAR SQLCMDHEADERS -1
答案 1 :(得分:1)
为了我的理智(和Michael的),这里的代码似乎有效:
:SETVAR SQLCMDHEADERS -1
DECLARE @indSubject varchar(7)
SET @indSubject='$(indSubject)'
-- LOTS of query stuff here that makes a page. For simplicity
-- just use this:
SELECT '<html><body>' + @indSubject + '</body></html>'
当使用命令sqlcmd -E -S(Local)\SQLExpress -v indSubject = "61-0022" -dmyDatabase -y 0 -iC:\temp\test4.sql -oC:\temp\out.html
时,文件out.html如下所示:
<html><body>61-0022</body></html>
(1 rows affected)