在程序中通过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列的表的所有信息就选出来了
然后这两个结果集再取交集的话就是这两个列都有的表的信息了。至于函数就不写了。函数的功能语句主体应该很明确了吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)