Вообще говоря, этот SQL подходит только для небольших баз данных. Цикл в ASP также неэффективен. В больших базах данных его лучше не использовать. Если это большая база данных, обратитесь к принцу и попросите еще один оператор SQL-запроса, написанный экспертом. Функция следующая: использовать ключевое слово в качестве индекса, выполнить поиск по всей базе данных, а затем вернуть имя таблицы и имя столбца, в котором находится это ключевое слово. (Это здорово... особенно, когда во время вторжения вы не можете найти таблицу, в которой находятся имя пользователя и пароль. Если вы можете найти поля напрямую, введя ключевое слово admin... вам не нужно смотреть на каждую таблицу одну за другой.) Итак, основываясь на этом утверждении, я написал сценарий asp, чтобы облегчить поиск в базе данных в будущем.
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
<%
'Подтвердить позицию ключевого слова в базе данных (какая таблица и какой столбец)
' Автор: oldjun (http://www.oldjun.com)
'На основе sql huangzi(http://www.2chuizi.com)
Server.ScriptTimeout=999999999
Response.Buffer = true
При ошибке Возобновить Далее
ключевое слово = запрос (ключевое слово)
если ключевое слово= тогда
response.write Нужно ключевое слово!
ответ.Конец
Конец, если
тусклый контакт
Установите conn = Server.CreateObject(ADODB.Connection)
ДимКоннСтр
'ConnectionString, пожалуйста, измените!
ConnStr=Driver={SQL SERVER};Server=localhost;UID=sa;PWD=sa;Database=master
Conn.open ConnStr
conn.execute(CREATE TABLE huangzi_table(id intidentity(1,1),biaoid int,biaoname nvarchar(1000)))
conn.execute(вставьте huangzi_table, выберите [id],[name] из sysobjects, где xtype='U')
установите rs =conn.execute (выберите счетчик (id) как tnum из huangzi_table)
tnum=rs(tnum)
RS.закрыть
установить rs=ничего
для i = от 1 до tnum
установите rsbiao =conn.execute (выберите biaoid из huangzi_table, где id=&i&)
biaoid=rsbiao(биоид)
set rst =conn.execute (выберите [biaoname] из huangzi_table, где biaoid=&biaoid&)
tname=rst(biaoname)
установите rsl=conn.execute(выберите count([name]) как lnum из системных столбцов, где id=&biaoid&)
lnum=rsl(lnum)
от j=1 до lnum
topnum=j-1
set rslie=conn.execute(выберите первое 1 [имя] из системных столбцов, где id=&biaoid& и [имя] отсутствуют в
(выберите верхний &topnum& [имя] из системных столбцов, где id=&biaoid&))
liename=rslie(имя)
set rsresult=conn.execute(выберите 1 верхний [&liename&] из [&tname&] где CAST([&liename&] AS NVARCHAR(1000))='&keyword&')
если rsresult.bof или rsresult.eof, то
'response.write Nothing-&tname&:&liename
'response.write <br>
еще
результат = rsresult (имя_линии)
ответ.записать результат&(&tname&:&liename&)
ответ.записать <br>
Конец, если
rslie.close
setrslie=ничего
rsresult.close
установить rsresult=ничего
следующий
rsbiao.close
setrsbiao=ничего
первый.закрыть
setrst=ничего
rsl.закрыть
установить rsl=ничего
следующий
conn.execute(DROP TABLE huangzi_table)
%>
Примечание. Эффективность очень низкая, и при ее использовании может возникнуть зависание. Пожалуйста, подождите. Лучше не использовать большую библиотеку. Код прост и реализует простые функции без технического содержания. Возникла проблема с кэшированием при изменении оператора подключения. Рекомендуется перезапустить браузер!