记录一下,以后备用;查询结果第一张表为包含字符串的相关表数据,第二章为表名,以此类推
1 /* 2 查询数据库中包含指定字符串的数据表名及相应记录 3 */ 4 USE [数据库] 5 GO 6 7 DECLARE @key VARCHAR(30) 8 SET @key = '查找的内容' --替换为要查找的字符串 9 DECLARE @tabName VARCHAR(40),@colName VARCHAR(40) 10 DECLARE @sql VARCHAR(2000) 11 DECLARE @tsql VARCHAR(8000) 12 13 DECLARE tabCursor CURSOR FOR 14 SELECT name FROM sysobjects WHERE xtype = 'u' AND name <> 'dtproperties' 15 OPEN tabCursor 16 FETCH NEXT FROM tabCursor INTO @tabName 17 WHILE @@fetch_status = 0 18 BEGIN 19 SET @tsql = '' 20 DECLARE colCursor CURSOR FOR 21 SELECT Name FROM SysColumns WHERE id=Object_Id(@tabName) and xtype=167 22 OPEN colCursor 23 FETCH NEXT FROM colCursor INTO @colName 24 WHILE @@fetch_status = 0 25 BEGIN 26 SET @sql = 'if(exists(select * from ' + @tabName + ' where ' 27 SET @sql = @sql + @colName + ' like ''%' + @key + '%'')) begin select * from ' 28 SET @sql = @sql + @tabName + ' where ' + @colName + ' like ''%' + @key + '%'';select ''' 29 + @tabName + ''' as TableName end' 30 SET @tsql = @tsql + @sql + ';' 31 32 FETCH NEXT FROM colCursor INTO @colName 33 END 34 EXEC(@tsql) 35 CLOSE colCursor 36 DEALLOCATE colCursor 37 38 FETCH NEXT FROM tabCursor INTO @tabName 39 END 40 CLOSE tabCursor 41 DEALLOCATE tabCursor