SQL语句;选出具有某两列的数据库表名
现有两列数据,T1,T2,想选出数据库中所有包含这两列数据的表的名称,做成一个arraylist集合,请问SQL语句怎么写?还有这个函数怎么写?...
现有两列数据,T1,T2,想选出数据库中所有包含这两列数据的表的名称,做成一个arraylist集合,请问SQL语句怎么写?还有这个函数怎么写?
展开
展开全部
数据库的信息放在master数据库中sysdatabases表中,而表的信息放在sysobjects中,列的信息放在syscolumns中。在syscolumns表中,
name,id,colid分别为字段名称,就是列名;id为表的id号;字段id号
如果我们想把某一个表的字段找出来那就用:
select * from Master.dbo.syscolumns where id=’xxxxx‘,当然,where后的id的值就是目标数据表的id 。相反,如果们想找T1和T2所在的表,那么得用连接了。
select * from sysobjects o,syscolumns c where c.name='T1' and c.id=o.id
select * from sysobjects o,syscolumns c where c.name='T2' and c.id=o.id
这样有T1列的表和有T2列的表的所有信息就选出来了
然后这两个结果集再取交集的话就是这两个列都有的表的信息了。至于函数就不写了。函数的功能语句主体应该很明确了吧。
name,id,colid分别为字段名称,就是列名;id为表的id号;字段id号
如果我们想把某一个表的字段找出来那就用:
select * from Master.dbo.syscolumns where id=’xxxxx‘,当然,where后的id的值就是目标数据表的id 。相反,如果们想找T1和T2所在的表,那么得用连接了。
select * from sysobjects o,syscolumns c where c.name='T1' and c.id=o.id
select * from sysobjects o,syscolumns c where c.name='T2' and c.id=o.id
这样有T1列的表和有T2列的表的所有信息就选出来了
然后这两个结果集再取交集的话就是这两个列都有的表的信息了。至于函数就不写了。函数的功能语句主体应该很明确了吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询