declare
@table_name varchar(250);
declare
@field_name varchar(250);
declare
@sql_search nvarchar(4000);
declare
@search_string varchar(250) = '%search_string%';
--use % to search
for substring
declare
user_tables cursor fast_forward
for
select t.name table_name, c.name field_name
from sys.tables t, sys.columns c, sys.types tp, sysobjects ao
where ao.id = t.object_id and c.object_id = t.object_id
and tp.system_type_id
= c.system_type_id
and ao.xtype
= 'U' --user tables
and tp.name
in ('char', 'text', 'varchar', 'nchar', 'nvarchar', 'ntext')
order by
t.name;
open
user_tables;
fetch next from user_tables
into @table_name,
@field_name;
while @@FETCH_STATUS = 0
begin
declare
@result int;
set
@sql_search = 'declare
search_cursor cursor fast_forward for
select count(*) from [' + @table_name + ']
where [' +
@field_name + '] like
''' + @search_string + '''';
exec sp_executesql @sql_search;
open
search_cursor;
fetch next from
search_cursor into @result;
if @@FETCH_STATUS = 0
and @result >
0
begin
print(@table_name
+ '.' + @field_name + ':' + convert(varchar, @result));
end
close
search_cursor;
deallocate
search_cursor;
fetch next from user_tables
into @table_name,
@field_name;
end
close
user_tables;
deallocate
user_tables;
Комментариев нет:
Отправить комментарий