SQL 查詢數據庫中包含指定字符串的相關表和相關記錄


記錄一下,以后備用;查詢結果第一張表為包含字符串的相關表數據,第二章為表名,以此類推

 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM