加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp很好实现的查询某关键词在MSSQL数据库位置的代码

发布时间:2023-06-10 13:12:39 所属栏目:Asp教程 来源:
导读:整体而言,这段SQL只适宜用在小型数据库上,ASP中的循环也没效率,大库还是别用了,小库可以考虑。如果是大库的话,请联系皇子要另外一份牛人写的SQL查询语句。

功能是:以一个关键字为索引,搜索整个数据库,然
整体而言,这段SQL只适宜用在小型数据库上,ASP中的循环也没效率,大库还是别用了,小库可以考虑。如果是大库的话,请联系皇子要另外一份牛人写的SQL查询语句。
 
功能是:以一个关键字为索引,搜索整个数据库,然后返回那个关键字所在的表名和列名。(很赞...特别是入侵的时候找不到用户名与密码所在的表的时候,如果能直接通过输入admin这个关键词找出字段...省得一个表一个表的看了。)于是根据那段语句,写了个asp的脚本,方便大家以后搜寻数据库。
 
代码如下:
 
复制代码代码如下:
 
<%
 
'Confirm a keyword's position of a database(which table & which column)
 
'By oldjun(http://www.oldjun.com)
 
'Based on huangzi(http://www.2chuizi.com)'s sql
 
Server.ScriptTimeout=999999999
 
Response.Buffer =true
 
On Error Resume Next
 
keyword=request("keyword")
 
if keyword="" then
 
response.write "Need keyword!"
 
response.End
 
End if
 
dim conn
 
Set conn = Server.CreateObject("ADODB.Connection")
 
Dim ConnStr
 
'ConnectionString,Pls change!
 
ConnStr="Driver={SQL SERVER};Server=localhost;UID=sa;PWD=sa;Database=master"
 
Conn.open ConnStr
 
conn.execute("CREATE TABLE huangzi_table(id int identity(1,1),biaoid int,biaoname nvarchar(1000))")
 
conn.execute("insert huangzi_table select [id],[name] from sysobjects where xtype='U'")
 
set rs =conn.execute("select count(id) as tnum from huangzi_table")
 
tnum=rs("tnum")
 
rs.close
 
set rs=nothing
 
for i=1 to tnum
 
set rsbiao =conn.execute("select biaoid from huangzi_table where id="&i&"")
 
biaoid=rsbiao("biaoid")
 
set rst =conn.execute("select [biaoname] from huangzi_table where biaoid="&biaoid&"")
 
tname=rst("biaoname")
 
set rsl=conn.execute("select count([name]) as lnum from syscolumns where id="&biaoid&"")
 
lnum=rsl("lnum")
 
for j=1 to lnum
 
topnum=j-1
 
set rslie=conn.execute("select top 1 [name] from syscolumns where id="&biaoid&" and [name] not in
 
(select top "&topnum&" [name] from syscolumns where id="&biaoid&")")
 
liename=rslie("name")
 
set rsresult=conn.execute("select top 1 ["&liename&"] from ["&tname&"] where CAST(["&liename&"] AS NVARCHAR(1000))='"&keyword&"'")
 
if rsresult.bof or rsresult.eof then
 
'response.write "Nothing-"&tname&":"&liename
 
'response.write "<br>"
 
else
 
result=rsresult(liename)
 
response.write result&"("&tname&":"&liename&")"
 
response.write "<br>"
 
End if
 
rslie.close
 
set rslie=nothing
 
rsresult.close
 
set rsresult=nothing
 
next
 
rsbiao.close
 
set rsbiao=nothing
 
rst.close
 
set rst=nothing
 
rsl.close
 
set rsl=nothing
 
next
 
conn.execute("DROP TABLE huangzi_table")
 
%>
 
注:效率很差,使用时可能出现假死, 请耐心等待,大库还是别用了;代码简单,实现的简单功能,没技术含量,留着以后备用;换连接语句的时候有个缓存问题,建议重启下浏览器!
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章