SQL中利用sql语句查询数据库中的所有表、存储过程

时间:2021-09-08 04:34:55

( 一)利用Sql语句查询数据库中的所有表

1,利用sysobjects系统表
在这个表中,在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于U的所有记录,就为数据库中的表了。
示例语句如下::

select * from sysobjects where xtype='U'
注意:在SQL SERVER2005中,出现了sys.objects目录视图来代替sysobjects系统表,我们在SQL SERVER2005及以后的版本中,可以使用sysobjects系统表与sys.objects目录视图的任意对象来查询所有表。

2,利用sys.tables目录视图
sys.tables目录视图,为每个表对象返回一行.
示例语句如下:
select * from sys.tables
注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

3,利用存储过程sp_tables
sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。
我们可以执行如下语句:
exec sp_tables
在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。

(二)利用Sql语句查询数据中的所有存储过程

1,利用sysobjects系统表
在这个表中,在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于P的所有记录,就为数据库中的存储过程了。
示例语句如下:

select * from sysobjects where xtype='P'
注意:在SQL SERVER2005中,出现了sys.objects目录视图来代替sysobjects系统表,我们在SQL SERVER2005及以后的版本中,可以使用sysobjects系统表与sys.objects目录视图的任意对象来查询所有存储过程。

但在sys.objects中,xtype列已经被type列代替,也就是说,在SQL SERVER2005及以后的版中可以使用以下代码来查询数据库中所有存储过程。
select * from sys.objects where type='P'
2,利用sys.procedures目录视图
sys.procedures目录视图,每个存储过程都会在返回结果集中占一行.
示例语句如下:
select * from sys.procedures
注意:sys.procedures目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

文章来源:.net学习网