SQL里面我需要知道某栏位里面数值为A的全部表的名字
来源:百度知道 编辑:UC知道 时间:2024/06/21 23:18:12
数据库 DATA 里面有900个表
我需要知道哪些表里面 的 INV_NO列 数值为A
我需要这些表的清单
例2
DATA 下面表 box1 box2
每个表有10个栏位(列) 其中一个列名字为inv_no
我需要知道 inv_no 里面数值为A 的表的名字
create table #temp (tablename varchar(100) primary key(tablename))
go
declare @tablename varchar(200),@colname varchar(200),@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 where b.name='INV_NO' --'INV_NO'表示列名
open cur
fetch next from cur into @tablename,@colname
while @@fetch_status=0
begin
select @sql='select @count=count(*) from '+@tablename+' where '+@colname+' =''A''' --A得知就是你列名需要等于的值
exec sp_executesql @sql,N'@count int out',@count out
if @count>0
insert into #temp values (@tablename)
fetch next from cur into @tablename,@colname
end
close cur
deallocate cur
select * from #temp
go
drop table #temp
想查表内容中为A的表名不可能
如果查列名为INV_NO的表名可以
列名含INV_NO的表名
select name from sysobjects
where id in