怎么用Sql语句获取一个数据库中的所有表的名字

怎么用Sql语句获取一个数据库中的所有表的名字,第1张

在程序中通过sql语句查询来获得某个数据库的所有表名,代码如下:

SELECT

table_name

FROM

information_schema.tables

WHERE table_schema = 'mydatabasename'

AND table_type = 'base table'

扩展资料

1,利用sys.tables目录视图查询所有表的名字,sys.tables目录视图为每个表对象返回一行. 示例语句如下:

select * from sys.tables

注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

2,利用存储过程sp_tables sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。 我们可以执行如下语句:

exec sp_tables

在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。

参考资料:百度百科 sql语句

百度百科 sys.tables

连接ORACLE数据库有两种方式:数据库名和服务名,数据库名的更改要使用重建控制文件的方式更改.alter database backup controlfile to trace后更改其中数据库名为新名,运行该文件

如果要更改目录,在上面的Trace文件中将文件目录改为新的文件目录名称重建或在mount阶段使用alter database rename datafile一一将文件更改过来.

数据库的信息放在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列的表的所有信息就选出来了

然后这两个结果集再取交集的话就是这两个列都有的表的信息了。至于函数就不写了。函数的功能语句主体应该很明确了吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10010702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存