SQL数据反查2

来源:百度知道 编辑:UC知道 时间:2024/05/19 22:43:35
我需要在
已知数据库
不知到栏位
查 某栏位内数值为 A的表 名字
顺便查栏位名字

估计需要2次查询
朱华平 - 高级经理 六级 您的回答 ms sql可以直接查询获得栏位名称,网上有,自己搜索一下;
您能帮忙查询一下吗 这个问题比较麻烦。给个连接我自己去看也行,只要能解决问题(别让我先查询该数据库里面每个表名字以后再查询每个表里面有没有我需要的数据,数据库里面600+表一个一个找太难) access 我没有用到。

create table #temp (tablename varchar(100),colname varchar(100))
go
declare @tablename varchar(200),@colname varchar(200),@coltype varchar(50),@count int,@sql nvarchar(4000)
declare cur cursor for select a.name,b.name from sysobjects a inner join syscolumns b on a.id=b.id inner join systypes c on b.xtype=c.xtype where c.name like '%char%' and a.xtype='U'
open cur
fetch next from cur into @tablename,@colname
while @@fetch_status=0
begin
select @sql='select @count=count(*) from '+@tablename+' where '+@colname+' =''A'''
exec sp_executesql @sql,N'@count int out',@count out
if @count>0
insert into #temp values (@tablename,@colname)
fetch next from cur into @tablename,@colname
end
close cur
deallocate cur
select * from #temp
go
drop table #temp

ms sql可以直接查询获得栏位名称,网上有,自己搜索一下;
access不能直接查询,可以再查询获得记