标签归档:MSSQL管理

ASP写的MSSQL管理工具

本文为catseven落伍缩写,已发到落伍者,供catseven落伍。如有引用,请注明出处。
       因为工作,经常要操作数据库,考虑到安全问题,在防火墙中没有开mssql端口。每次遇到必须使用查询分析器的时候,就麻烦了。为了方便工作,写了这个工具。

      可以操作所有ADODB连接的数据库,当然包括MSSQL,MySQL,Access….

     本工具分为两个部分。控制代码和输入代码。

     控制代码就是VBScript部分,可以实现所有逻辑操作,和asp操作一样。

      输入部分就是Link、SQL分别用于输入连接字符串,SQL语句。如果控制代码不调用这些语句,则这部分无实际意义。

       默认,控制代码已经写好一个模板。点击执行,可以执行SQL语句,点击下载,将执行结果保存到Excel中。

       因为能直接操作VbScript,如果要使用,请设置好权限。新建mssql用户,在iis中设置mssql.asp以mssql的身份执行。mssql.asp的访问权限只有mssq用户。mssql对所有文件无任何权限,对mssql.asp只有可读权限。

      代码如下:

<%
Server.ScriptTimeout = 9999
starttime = timer()
cmd = request("cmd")

if request("out")="xls" and trim(cmd)<>"" then
	response.ContentType = "application/octet-stream"
	response.AddHeader "Content-Disposition", "attachment;filename=执行结果.xls"
	execute(cmd)
	response.end
end if
%>
<style type="text/css">
form{text-align:center}
textarea{width:100%;height:200px;border:solid 1px #CCC;}
input{height:20px;vertical-align:middle}
input.input{border:solid 1px #CCC;width:40%;line-height:18px;color:#090}
a{font-size:12px;color:#C00;text-decoration:none;}
</style>
<form action="mssql.asp" method="post">
<textarea name="cmd">
<%
if trim(cmd)="" then
%>set Conn = Server.CreateObject("ADODB.Connection")
Conn.open Request("link")

Set Rs=Conn.Execute(Request("sql"))
  for i = 0 to Rs.Fields.Count-1
    Response.write Rs(i).Name &"	"
  next
  response.write vbCrlf
  do while Not Rs.eof
    for i = 0 to Rs.Fields.Count-1
      Response.write Rs(i).value &"	"
    next
    response.write vbCrlf
	Rs.movenext
  loop
<%else%>
<%=cmd%>
<%end if%></textarea>
<%
sql = Request("sql")
link = request("link")
if sql = "" then sql = "select * from sysobjects"
if link = "" then link = "Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;Password=123456;Initial Catalog=master;Data Source=(local)"
%>
Link:<input name="link" class="input" value="<%=link%>" /> 
SQL:<input name="sql" class="input" value="<%=sql%>" /> 
<input type="submit" value="执行" onclick="document.forms[0].action='?out=txt'"/>
<input type="submit" value="下载" onclick="document.forms[0].action='?out=xls'"/>
</form>
<%
response.flush()
if trim(cmd)<>"" then
	response.write "<hr /><textarea readonly=""readonly"">"
	execute(cmd)
	response.write "</textarea>"
end if
%><hr /><center style="font-size:12px;color:#C00">执行时间:<%=formatnumber((timer()-starttime)*1000,2,-1)%>毫秒。</center>