|
- mssql sqlserver 整个库搜索字符串
- if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_search]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
- drop procedure [dbo].[p_search]
- GO
-
- /*--搜索某个字符串在那个表的那个字段中
- p_search 'aaaa'
- --邹建 2004.10(引用请保留此信息)--*/
-
- /*--调用示例
- use pubs
- exec p_search N'l'
- --*/
- create proc p_search
- @str Nvarchar(1000) --要搜索的字符串
- as
- if @str is null return
-
- declare @s Nvarchar(4000)
- create table #t(表名 sysname,字段名 sysname)
-
- declare tb cursor local for
- select s='if exists(select 1 from ['+replace(b.name,']',']]')+'] where ['+a.name+'] like N''%'+@str+'%'')
- print ''所在的表及字段: ['+b.name+'].['+a.name+']'''
- from syscolumns a join sysobjects b on a.id=b.id
- where b.xtype='U' and a.status>=0
- and a.xtype in(175,239,99,35,231,167)
- open tb
- fetch next from tb into @s
- while @@fetch_status=0
- begin
- exec(@s)
- fetch next from tb into @s
- end
- close tb
- deallocate tb
- go
复制代码 |
|