SQL 查询数据库中包含指定字符串的相关表和相关记录

记录一下,以后备用;查询结果第一张表为包含字符串的相关表数据,第二章为表名,以此类推

/*
	查询数据库中包含指定字符串的数据表名及相应记录
*/
USE [数据库]
GO

DECLARE @key VARCHAR(30)
SET @key = '查找的内容'    --替换为要查找的字符串
DECLARE @tabName VARCHAR(40),@colName VARCHAR(40)
DECLARE @sql VARCHAR(2000)
DECLARE @tsql VARCHAR(8000)

DECLARE tabCursor CURSOR FOR
SELECT name FROM sysobjects WHERE xtype = 'u' AND name <> 'dtproperties'
OPEN tabCursor
FETCH NEXT FROM tabCursor INTO @tabName
WHILE @@fetch_status = 0
BEGIN
	SET @tsql = ''
	DECLARE colCursor CURSOR FOR 
	SELECT Name FROM SysColumns WHERE id=Object_Id(@tabName) and xtype=167
	OPEN colCursor
	FETCH NEXT FROM colCursor INTO @colName
	WHILE @@fetch_status = 0
	BEGIN
		SET @sql = 'if(exists(select * from ' + @tabName + ' where '
		SET @sql = @sql + @colName + ' like ''%' + @key + '%'')) begin  select * from '
		SET @sql = @sql + @tabName + ' where ' + @colName + ' like ''%' + @key + '%'';select '''
		+ @tabName + ''' as TableName  end'
		SET @tsql = @tsql + @sql + ';'
		
		FETCH NEXT FROM colCursor INTO @colName
	END
	EXEC(@tsql)
	CLOSE colCursor
	DEALLOCATE colCursor
	
	FETCH NEXT FROM tabCursor INTO @tabName
END
CLOSE tabCursor
DEALLOCATE tabCursor


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值