sql2005全庫查詢關鍵字

2021-05-31 23:40:20 字數 1913 閱讀 5555

有個客戶的自助建站的資料庫很多表加入了木馬的指令碼,在網上找到了這個好用的東東,可以在整個資料庫的所有表,所有欄位中查詢關鍵字,終於把掛馬的指令碼給刪除了

--全資料庫查詢適合sql2005

--執行儲存過程

exec [sp_search_all_database] @v_search_text='查詢關鍵字內容'

exec [sp_search_all_database] @v_search_text=''

--這個儲存過程,查詢到關鍵字的表和字段就會print出來

--新建儲存過程

create procedure [sp_search_all_database]

@v_search_text varchar(500)

asdeclare @v_sql nvarchar(300)

declare @v_tab_name varchar(50)

declare @v_colu_name varchar(50)

declare @cot int

declare c_tab_col_name cursor for

select distinct sysobjects.name as tab_name,syscolumns.name as colu_name

from syscolumns, sysobjects, systypes

where sysobjects.id = syscolumns.id and systypes.type = syscolumns.type and sysobjects.type='u'

order by sysobjects.name,syscolumns.name

open c_tab_col_name

fetch next from c_tab_col_name into @v_tab_name,@v_colu_name

while(@@fetch_status = 0)

begin

set nocount on;

set @v_sql= 'select @cot=count(1) from '+ @v_tab_name + ' where '+ @v_colu_name + ' like ''%' + @v_search_text+'%'''

--print @v_sql

begin try

exec sp_executesql @v_sql,n'@cot int output',@cot output

--print @@error

--print @cot

if @@error=0 and @cot>0

begin

--   print @cot

--print 'select * from '+ @v_tab_name + ' where '+ @v_colu_name + ' like ''%' + @v_search_text+'%'''

--拼裝出來刪除掛馬的指令碼

set @v_sql= 'update '+ @v_tab_name + ' set '+ @v_colu_name + ' = replace(cast('+ @v_colu_name + ' as varchar(8000)), ''' + @v_search_text+''','''') '

print @v_sql

--exec sp_executesql   @v_sql

endend try

begin catch

-- print @@error

-- print @@error

end catch

fetch next from c_tab_col_name into @v_tab_name,@v_colu_name

endclose c_tab_col_name

deallocate c_tab_col_name

SQL2005遞迴查詢語法

create table code catalog structure catalogid nvarchar 10 col varchar 10 parentid nvarchar 10 insert into code catalog structure select 我是一層的一 aaa roo...

關鍵字查詢

題目描述 每次給你一篇文章,和一些關鍵字,需要你告訴我多少關鍵字將匹配於文章。輸入描述 第一行包含乙個整數,表示有多少篇文章。最後一行是文章,長度不超過1000000。輸出描述 輸出文章中包含多少關鍵字。輸入樣例 15 shehe sayshr heryasherhs 輸出樣例 3源 include...

關於sql語句查詢 top關鍵字

top關鍵字 1 首先引用一位出錯的例子,sql select top 30 from data where title title1 order by id desc 分析出錯原因 sql語句裡同時存在 where 和top 語句的時候,並且where條件列不是合適的索引,程式執行的是全表掃瞄,首...