数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

栏目: 数据库 · 发布时间: 5年前

内容简介:常用SQLServer的朋友们,绝大部分情况下,我们写SQL脚本主要用来处理我们自己的数据,比如读取、插入数据等。但在有些情况下,我们可能要查看我们定义的一些元素,比如我们定义的表都有哪些、表结构如何、存储过程的源码等等。这时候,我们学习的常规的SQL脚本可能就无法处理了。希望对您有所帮助!

常用SQLServer的朋友们,绝大部分情况下,我们写 SQL 脚本主要用来处理我们自己的数据,比如读取、插入数据等。但在有些情况下,我们可能要查看我们定义的一些元素,比如我们定义的表都有哪些、表结构如何、存储过程的源码等等。这时候,我们学习的常规的SQL脚本可能就无法处理了。

数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

比如您要写一个管理数据库的程序,就要知道数据库中有什么表、表结构如何,以及视图、存储过程的脚本源码等。下面我就说说如何获取数据库的结构信息。

获取数据库及配置信息

1、获取数据库配置信息

exec sp_server_info  

数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

2、返回所有数据库

exec sp_databases  

获取系统中的用户表

有三种方法可以使用,分别是:

1、利用sysobjects系统表或 sys.objects 目录视图

select *  from sysobjects  where xtype='U'  
select *  from sys.objects  where xtype='U'  

2、利用 sys.tables 目录视图

select *  from sys.tables  

3、利用存储过程 sp_tables

exec sp_tables  

获取系统中所有的用户视图

有两种方法可以使用,分别是:

1、利用sysobjects系统表或 sys.objects 目录视图

select *  from sysobjects  where xtype='V'  
select *  from sys.objects  where xtype='V'  

2、利用 sys.tables 目录视图

select *  from sys.tables  

获取数据库中所有的用户存储过程

有两种方法可以使用,分别是:

1、利用sysobjects系统表或 sys.objects 目录视图

select *  from sysobjects  where xtype='P'  
select *  from sys.objects  where xtype='P'  

2、利用 sys.procedures 目录视图

select *  from sys.procedures  

获取存储过程或视图的定义脚本

要用到系统视图 sys.all_objectssys.sql_modules ,写法如下:

select a. name,a.[type],b.[definition]   
from sys.all_objects a,sys.sql_modules b  
where a.is_ms_shipped=0  and a.object_id = b.object_id  and a.[type]  in ('P','V')  
order  by a.[ name]  asc 

数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

其中 sys.all_objects 是 sql server 2012 版本中的系统视图,在 更早期的 sql server 版本中,应该用 sys.objects,同时,sys.objects 在 2012 中也是可以用的,只不过考虑到后续兼容性,在新版本中,用新的 name 还是比较好。

sys.all_objects.type字段常用的类型有: P = 存储过程、V = 视图、U = 表(用户定义类型)、TT = 表类型 、AF = 聚合函数等。

sys.sql_modules.definition返回的就是定义存储过程或视图的脚本。

获取表的字段信息

1、如果单纯获取字段名称,只需要用到系统表 syscolumns

select *  from syscolumns  where id=object_id('表名')  

2、如果要获取字段和对应的数据类型,需要用到系统表 syscolumnssystypes

select a. name  as [ column],b. name  as type   
from syscolumns a,systypes b   
where a.id=object_id('表名') and a.xtype=b.xtype  

数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

3、获取更详细的表结构信息,调用 [INFORMATION_SCHEMA].[COLUMNS]

SELECT c.TABLE_SCHEMA ,  
 c.TABLE_NAME ,  
 c.COLUMN_NAME ,  
 c.DATA_TYPE ,  
 c.CHARACTER_MAXIMUM_LENGTH ,  
 c.COLUMN_DEFAULT ,  
 c.IS_NULLABLE ,  
 c.NUMERIC_PRECISION ,  
 c.NUMERIC_SCALE  
FROM [INFORMATION_SCHEMA].[COLUMNS] c  
WHERE TABLE_NAME = 'idata'  

数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

如果您能够活用这些系统内置的表、视图和存储过程,您总可以找到方法方便的查到想要知道的数据元素信息。

希望对您有所帮助!


以上所述就是小编给大家介绍的《数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

淘宝十年产品事

淘宝十年产品事

苏杰 / 电子工业出版社 / 2013-10-15 / 55.00

产品经理发展到一定阶段,再要成长,光靠学习一些知识、技能已经不够,必须通过经典案例来学习,而本书,就提供了小到页面细节、大到平台架构的丰富案例。电商从业者,无法无视“淘宝”这个标杆的存在,本书可帮助大家做出更好的选择。愿意思考的人们,也可以从“淘宝”这个产品,或者说社会 现象、经济现象里,找到每天都能体会到的那些变化的原因,从而想得更明白,活得更通透。 本书细数淘宝成立十年来经历的重大变化,......一起来看看 《淘宝十年产品事》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具