--但只已知一個字符串,去查詢整個數據庫內有那些表里面包含這個字符串,用游標可以實現了這個需求,但是我想求一個能查詢數據庫里面所有nvarchar、varchar并且能分頁的存儲過程:??
create?proc?Full_Search(@string?varchar(50))asbegin?declare?@tbname?varchar(50)?declare?tbroy?cursor??for?select?name?from?sysobjects??where?xtype='u'???--第一個游標遍歷所有的表?open?tbroyfetch?next?from?tbroy?into?@tbnamewhile?@@fetch_status=0begin????declare?@colname?varchar(50)?declare?colroy?cursor?for?select?name?from?syscolumns?where?id=object_id(@tbname)?and?xtype?in?(?select?xtype?from?systypes?where?name?in?('varchar','nvarchar','char','nchar')?--數據類型為字符型的字段?)?--第二個游標是第一個游標的嵌套游標,遍歷某個表的所有字段??open?colroy?fetch?next?from?colroy?into?@colname?while?@@fetch_status=0?begin???declare?@sql?nvarchar(1000),@j?int?select?@sql='select?@i=count(1)?from?'?+@tbname?+'??where?'+?@colname+'?like?'+'''%'+@string+'%'''?exec?sp_executesql?@sql,N'@i?int?output',@i=@j?output???--輸出滿足條件表的記錄數?if?@j>0?exec('select??distinct?'+@colname+'?from?'?+@tbname?+'??where?'+?@colname+'?like?'+'''%'+@string+'%''')??fetch?next?from?colroy?into?@colname?end??????????close?colroy?deallocate?colroy?fetch?next?from?tbroy?into?@tbnameendclose?tbroydeallocate?tbroyend?exec?Full_Search??'市場'?drop?proc?Full_Search
?
?
sql存儲過程全站搜索、并分頁
阿波羅的戰車
2018-12-07 08:55:14
