En términos generales, este SQL solo es adecuado para bases de datos pequeñas. El bucle en ASP también es ineficiente. Es mejor no usarlo en bases de datos grandes. Si se trata de una base de datos grande, comuníquese con el príncipe para solicitar otra declaración de consulta SQL escrita por un experto. La función es: usar una palabra clave como índice, buscar en toda la base de datos y luego devolver el nombre de la tabla y el nombre de la columna donde se encuentra esa palabra clave. (Es genial... especialmente cuando no puedes encontrar la tabla donde se encuentran el nombre de usuario y la contraseña durante la intrusión. Si puedes encontrar los campos directamente ingresando la palabra clave admin... no tienes que mirar cada tabla una por una.) Así que, basándose en esa afirmación, escribí un script ASP para facilitar la búsqueda en la base de datos en el futuro.
El código es el siguiente:
Copie el código de código de la siguiente manera:
<%
'Confirma la posición de una palabra clave de una base de datos (qué tabla y qué columna)
'Por oldjun (http://www.oldjun.com)
'Basado en el sql de huangzi(http://www.2chuizi.com)
Servidor.ScriptTimeout=999999999
Respuesta.Buffer = verdadero
En caso de error Continuar siguiente
palabra clave=solicitud(palabra clave)
si palabra clave = entonces
Response.write ¡Necesita palabra clave!
respuesta.Fin
terminar si
conexión tenue
Establecer conexión = Server.CreateObject(ADODB.Connection)
DimConnStr
'ConnectionString, ¡cámbielo!
ConnStr=Driver={SERVIDOR SQL};Servidor=localhost;UID=sa;PWD=sa;Base de datos=maestro
Conn.open ConnStr
conn.execute(CREAR TABLA huangzi_table(id int identidad(1,1),biaoid int,biaoname nvarchar(1000)))
conn.execute(inserte huangzi_table seleccione [id],[nombre] de sysobjects donde xtype='U')
establecer rs =conn.execute(seleccione count(id) como tnum de huangzi_table)
tnúm=rs(tnúm)
rs.cerrar
establecer rs = nada
para i=1 a tnum
establecer rsbiao =conn.execute(seleccione biaoid de huangzi_table donde id=&i&)
biaoide=rsbiao(biaoide)
establecer primero =conn.execute(seleccione [biaoname] de huangzi_table donde biaoid=&biaoid&)
tname=primero(biaoname)
establezca rsl=conn.execute(seleccione count([nombre]) como lnum de syscolumns donde id=&biaoid&)
número l=rsl(número l)
para j=1 a lnum
número superior=j-1
establezca rslie=conn.execute(seleccione el 1 superior [nombre] de las columnas del sistema donde id=&biaoid& y [nombre] no están en
(seleccione top &topnum& [nombre] de syscolumns donde id=&biaoid&))
liename=rslie(nombre)
establezca rsresult=conn.execute(seleccione los 1 primeros [&liename&] de [&tname&] donde CAST([&liename&] AS NVARCHAR(1000))='&keyword&')
si rsresult.bof o rsresult.eof entonces
'respuesta.escribir Nada-&tname&:&liename
'respuesta.escribir <br>
demás
resultado = rsresult (nombre de mentira)
respuesta.escribir resultado&(&tname&:&liename&)
respuesta.escribir <br>
terminar si
rslie.cerrar
setrslie=nada
rsresultado.cerrar
establecer rsresult = nada
próximo
rsbiao.cerrar
setrsbiao=nada
primero.cerrar
primero=nada
rsl.cerrar
establecer rsl = nada
próximo
conn.execute(DROP TABLE huangzi_table)
%>
Nota: La eficiencia es muy pobre y puede producirse una animación suspendida al usarlo. Espere pacientemente. Es mejor no utilizar la biblioteca grande. El código es simple e implementa funciones simples sin contenido técnico. Hay un problema de almacenamiento en caché al cambiar la declaración de conexión. ¡Se recomienda reiniciar el navegador!