SQL Server: 所有库、所有表、所有列查询值

EXEC sp_MSforeachdb 'if "?" not in (''master'',''tempdb'',''model'',''msdb'',''distribution'') 
BEGIN

DECLARE @search NVARCHAR(200),@sql NVARCHAR(MAX)
SET @search=''广东''		--自己修改
DECLARE @t TABLE (
	rid INT IDENTITY(1,1) PRIMARY KEY,
	tableName NVARCHAR(200),
	columnName NVARCHAR(200),
	printInfo AS tablename+''.''+columnName+'' ''	
)

--SELECT @sql=''if exists(select 1 from [''+t.name+''] where convert(nvarchar(max),[''+c.name+''])=''''''+@search+''''''''  FROM sys.tables AS t
INSERT INTO @t(tableName,columnName)
SELECT t.name,c.name  FROM sys.tables AS t 
	INNER JOIN sys.[columns] AS c ON t.[object_id]=c.[object_id] 
	INNER JOIN sys.types AS tp ON c.system_type_id=tp.system_type_id AND tp.name IN (''text'',''ntext'',''char'',''nchar'',''varchar'',''nvarchar'')

DECLARE @i INT,@imax INT
SELECT @i=1,@imax=MAX(rid) FROM @t
WHILE @i<=@imax
BEGIN
	SELECT @sql=''if exists(select 1 from [''+tableName+''] where convert(nvarchar(max),[''+columnName+'']) like ''''%''+@search+''%'''') select ''''''+DB_NAME()+''.''+printInfo+''''''''  FROM @t  WHERE rid=@i;
		
	EXEC(@sql);
	SET @i=@i+1;
END

END
'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值