sql server2008系统表详细说明sys.开头的表_my98800的博客-程序员秘密

技术标签: SQLServer  

一、库里有多少个表,表名等

select * from INFORMATION_SCHEMA.TABLES

 

二、查询表、字段、类型、是否主键、长度、小数位、是否允许空、默认值等详细查询

效果:

复制代码
SELECT   
 (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空  
     a.colorder as 字段序号,  
     a.name as 字段名,  
     (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then ''else '' end) as 标识,  
     (case when (SELECT count(*) FROM sysobjects--查询主键  
                     WHERE (name in  
                             (SELECT name FROM sysindexes   
                             WHERE (id = a.id)  AND (indid in  
                                     (SELECT indid FROM sysindexkeys  
                                       WHERE (id = a.id) AND (colid in  
                                         (SELECT colid FROM syscolumns  
                                         WHERE (id = a.id) AND (name = a.name))  
                         )))))   
         AND (xtype = 'PK'))>0 then '' else '' end) as 主键,--查询主键END  
 b.name as 类型,  
 a.length as 占用字节数,  
 COLUMNPROPERTY(a.id,a.name,'PRECISION') as  长度,  
 isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,  
 (case when a.isnullable=1 then ''else '' end) as 允许空,  
 isnull(e.text,'') as 默认值,  
 isnull(g.[value],'') AS 字段说明   
 FROM syscolumns a left join systypes b   
 on a.xtype=b.xusertype  
 inner join sysobjects d   
 on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'  
 left join syscomments e  
 on a.cdefault=e.id  
 left join sys.extended_properties g  
 on a.id=g.major_id AND a.colid = g.minor_id   
 order by a.id,a.colorder
 
复制代码

 

三、系统表:

sys.allocation_units 数据库中的每个分配单元都在表中占一行。
sys.assembly_modules 为公共语言运行时 (CLR) 程序集所定义的每个函数、过程或触发器返回一行。此目录视图将 CLR 存储过程、CLR 触发器或 CLR 函数映射到其基础实现。类型为 TA、AF、PC、FS 和 FT 的对象具有相关联的程序集模块。若要查找对象和程序集之间的关联,可以将此目录视图联接到其他目录视图。例如,在创建 CLR 存储过程时,该存储过程由 sys.objects 中的一行、sys.procedures(继承自 sys.objects)中的一行以及 sys.assembly_modules 中的一行表示。该存储过程本身由 sys.objects 和 sys.procedures 中的元数据表示。在 sys.assembly_modules 中可以找到对该过程的基础 CLR 实现的引用。
sys.check_constraints 每个作为 CHECK 约束的对象 (sys.objects.type = ‘C’) 均存在对应的一行。
sys.columns 为包含列的对象(如视图或表)的每列返回一行。下面是包含列的对象类型的列表。

 

  • 表值程序集函数 (FT)
  • 内联表值 SQL 函数 (IF)
  • 内部表 (IT)
  • 系统表 (S)
  • 表值 SQL 函数 (TF)
  • 用户表 (U)
  • 视图 (V)
sys.computed_columns sys.columns 中的每个计算列对应一行。
sys.default_constraints 作为默认定义且 sys.objects.type = D 的每个对象在表中各对应一行,该默认定义是作为 CREATE TABLE 或 ALTER TABLE 语句的一部分创建的,而不是作为 CREATE DEFAULT 语句的一部分创建的。
sys.events 导致触发器或事件通知激发的每个事件对应一行。这些事件表示在使用 CREATE TRIGGER 或 CREATE EVENT NOTIFICATION 创建触发器或事件通知时所指定的事件类型。
sys.event_notifications 为作为事件通知的每个对象返回一行,且 sys.objects.type = EN。
sys.extended_procedures 每个作为扩展存储过程且 sys.objects.type = X 的对象对应一行。因为扩展存储过程安装在 master 数据库中,它们只有在该数据库上下文中才可见。从任何其他数据库上下文中的sys.extended_procedures 视图中进行选择,将返回空的结果集。
sys.foreign_key_columns 组成外键的每一列或列集在表中对应一行。
sys.foreign_keys 每个作为 FOREIGN KEY 约束并且 sys.object.type = F 的对象都在表中占一行。
sys.function_order_columns 针对每列返回一行,该列是公共语言运行时 (CLR) 表值函数 ORDER 表达式的一部分。
sys.identity_columns 用作标识列的每列都在表中占一行。
sys.index_columns 属于 sys.indexes 索引或未排序的表(堆)的每个列都对应一行。
sys.indexes 每个表格对象(例如,表、视图或表值函数)的索引或堆都包含一行。
sys.key_constraints 每个作为主键或唯一约束的对象对应一行。包括 sys.objects.type PK 和 UQ。
sys.numbered_procedure_parameters 带编号过程的每个参数都在表中对应一行。当您创建带编号的存储过程时,基过程的编号为 1。所有后续过程的编号依次为 2、3等。sys.numbered_procedure_parameters 包含所有后续过程(编号大于等于 2)的参数定义。该视图不显示基存储过程(编号 = 1)的参数。基存储过程类似于无编号的存储过程。因此,它的参数表示在 sys.parameters (Transact-SQL) 中。
sys.numbered_procedures 每个作为带编号的过程而创建的 SQL Server 存储过程都占一行。对于基(编号 = 1)存储过程,它不显示行。可以在诸如 sys.objects 和 sys.procedures 之类的视图中找到基存储过程的项。
sys.objects 在数据库中创建的每个用户定义的架构范围内的对象在该表中均对应一行。
sys.parameters 接受参数的对象的每个参数在表中对应一行。如果对象是标量函数,则另有一行说明返回值。该行将有一个值为 0 的 parameter_id。
sys.partitions 数据库中所有表和大多数类型的索引的每个分区在表中各对应一行。Fulltext、Spatial 和 XML 之类的特殊索引类型在此视图中不包括。SQL Server 2008 中所有表和索引都至少包含一个分区,无论它们是否已进行显式分区均为如此。
sys.procedures 于同类过程并且 sys.objects.type = P、X、RF 和 PC 的每个对象对应一行。
sys.service_queues 数据库中每个作为服务队列的对象(sys.objects.type = SQ)都在表中对应一行。
sys.spatial_index_tessellations 表示有关每个空间索引的分割方案和参数的信息。
sys.spatial_indexes 表示空间索引的主索引信息。
sys.sql_dependencies 对在定义另一引用对象的 Transact-SQL 表达式或语句中引用的被引用的实体的每一依赖关系,均存在对应的一行。
sys.sql_expression_dependencies 当前数据库中用户定义实体的每个按名称依赖项在此表中均占一行。当一个称为“被引用的实体”的实体按名称显示在另一个称为“引用实体”的实体的持久化 SQL 表达式中时,将创建这两个实体之间的依赖关系。例如,在视图定义中引用表时,作为引用实体的视图将依赖于表这个被引用的实体。如果删除该表,则该视图不可用。您可以使用此目录视图来报告以下实体的依赖关系信息:

 

  • 绑定到架构的实体。
  • 非绑定到架构的实体。
  • 跨数据库和跨服务器的实体。报告了实体名称;但实体 ID 尚未解析。
  • 绑定到架构的实体的列级依赖关系。可以使用 sys.dm_sql_referenced_entities 返回非绑定到架构的对象的列级依赖关系。
  • 服务器级别的 DDL 触发器(在 master 数据库的上下文中时)。
sys.sql_modules 对每个 SQL 语言定义的模块对象都返回一行。类型为 P、RF、V、TR、FN、IF、TF 和 R 的对象均有关联的 SQL 模块。在此视图中,独立的默认值,即 D 类型的对象也具有 SQL 模块定义。有关这些类型的说明,请参阅 sys.objects 目录视图中的类型列。
sys.stats U、V 或 TF 类型表格对象的每个统计信息都对应一行。
sys.stats_columns sys.stats 统计信息包含的每列对应一行。
sys.synonyms 在该视图中,sys.objects.type = SN 的每个同义词对象对应一行。
sys.table_types 显示用户定义表类型的属性。表类型是指无法从其中声明表变量或表值参数的类型。每个表类型都包含 type_table_object_id,它是指向sys.objects 目录视图的外键。此 ID 可用于查询各种目录视图,查询方式与常规表的 object_id 类似,以便发现表类型的结构,如表的列、约束等。
sys.tables 为每个表对象返回一行,当前仅用于 sys.objects.type = U 的表对象。
sys.trigger_event_types 为可以激发触发器的每个事件或事件组返回一行。
sys.trigger_events 触发触发器的每个事件对应一行。
sys.triggers 每个类型为 TR 或 TA 的触发器对象对应一行。DML 触发器名称在架构范围内,因此,可在 sys.objects 中显示。DDL 触发器名称的作用域取决于父实体,只能在此视图中显示。parent_class 和 name 列唯一标识了数据库中的触发器。
sys.views ys.objects.type = V 的每个视图对象在该表中对应一行。
作者: 王春天
出处: http://www.cnblogs.com/spring_wang/
Email: [email protected]
QQ交流:903639067 
QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术C#\WinForm\MVC\Webapi等,DB(SqlServer、Oracle等)技术。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/my98800/article/details/79969920

智能推荐

基于pytorch平台实现对MNIST数据集的分类分析(前馈神经网络、softmax)基础版_我是一颗跳跳糖哦的博客-程序员秘密

基于pytorch平台实现对MNIST数据集的分类分析(前馈神经网络、softmax)基础版

python自动化测试报告 之 allure_python自动化测试报告 之 Allure_weixin_39829073的博客-程序员秘密

一、Allure 介绍前面在编写自动化测试用例的时候,使用了HTMLTestRunner,是对于测试用例执行结果的一个统计和展示的报告。Allure 是一个report框架,可以基于一些测试框架生成测试报告,比较常用的一般是Junit/Testng框架;Allure 生成的报告样式简洁美观,同时又支持中文;Allure还支持使用Jenkins工具持续集成,整套环境搭建下来以后,使用起来非常方便...

Python自然语言处理—词嵌入 word2vec_午匀需的博客-程序员秘密

Python自然语言处理这本书后几章感觉更偏向一些文法知识,我简单读了一下放弃了。现在开始学https://github.com/yandexdataschool/nlp_course,本章将介绍第一周的内容——词嵌入。一 Word Embedding词如何转为向量呢?最简单的方法就是维护一个长的词典,使用one-hot来表示一个词,吃饭 [0,0,0,0,1,...,0,0,0]。基...

C# 反射获取对象的属性名和属性值_一阵没来由的风的博客-程序员秘密_c# 反射获取属性名与值

Type t = Farsightedgo.Localization.LanguageManager.Instance.GetType();//获得该类的Type foreach (PropertyInfo pi in t.GetProperties()) { if (pi.Name == D...

java学习笔记——spring 之 ioc容器在项目中的使用(创建与销毁)_qq_25106373的博客-程序员秘密

通常在我们的项目中ioc容器创建和销毁都要在合适的时机完成;     项目启动:{          IOC创建完成     }      项目销毁{          IOC销毁;     } 我们可以写一个监听器完成这个工作;但是其实Spring已经帮我们写好了这个监听器; &amp;lt;!-- needed for ContextLoaderList...

泛微Ecology8.0二次开发指导手册_栎秋的博客-程序员秘密_泛微ecology

文章目录一、开发准备二、开发环境搭建步骤1:从服务器上拷贝WEAVER/ecology代码步骤2:把本地代码导入到myeclipse工程中步骤3:配置ecology项目环境步骤4:修改ecology项目中数据库配置文件步骤5:Resin配置文件步骤6:启动运行三、Ecology8系统里一个jsp页面通常需要包含什么内容1、相关的操作的类、jsp标签、样式等2、右键菜单3、多语言标签4、操作权限四、E8控件说明Tab组件浏览框组件-标签表单布局组件可编辑表格分页控件Java验证复选框代码:弹出框组件一、开发

随便推点

mysql 5.7.20 从frm文件中得到建表语句 (使用 mysql-utilities)_weixin_33725239的博客-程序员秘密

系统环境 centos 7.2 mysql社区版 5.7.20mysql-utilities根据官网的说法,截止到2018年5月30日,实用工具的一些功能在Shell的路线图中,鼓励用户迁移到MySQL Shell。但我并没有在 mysql shell 8.0 工具中,找到 mysqlfrm 命令,因此,目前还是采用 mysql-utilities 工具。官网目前没找到相...

gstreamer移植qnx(四):交叉编译qnx版本的gstreamer插件库_玄道公子的博客-程序员秘密_gstreamer移植

一、简介​ 要移植gstreamer到qnx系统,除了本身的libgstreamer之外,还需要编译相关的插件库,比如编解码库,比如各种音视频容器库。二、 编译plugin base 库​ 这里笔者一开始使用的和libgstreamer库一样,使用configure的方式,写一个myconfig.sh来编译,但是发现编译出来的plugin library会带有rpa...

tomcat服务器上部署JAR或执行java -jar之间的区别?_而立通途的博客-程序员秘密_tomcat运行jar

疑问 ?? ?运行java web有两种方式:(1) java -jar *.jar命令 ; (2)tomcat容器当使用springboot打包出jar包时,这个jar包可以直接 运行java -jar *.jar运行,另一种是把 *.jar移动到tomcat/webapps 中,二者的区别是什么?理解 ! ! !(一)对于springboot打包出来的jar包中已经包含了嵌入式tomcat服务器的依赖项,在pom.xml问价中,导入的maven依赖spring-boot-starter-web

IOS中延时执行的几种方式的比较和汇总_李乾坤lqk的博客-程序员秘密

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。- (void)delayMethod { NSLog(@"execute"); }1.performSelector方法[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];此方式要求必须在主线

Android8.0及以上发送系统通知栏通知_高凤森的博客-程序员秘密

解决无法发送系统通知问题在安卓8.0以上,需要开辟一个通道才能发送系统通知private final String ID = "channel_001";private final String NAME = "name";@OnClick(R.id.btn_send_notifity) public void onViewClicked() { //通知管理器 NotificationManager notificationManager = (Noti

system verilog_时光-易逝的博客-程序员秘密_systemverilog手册

SystemVerilog语言简介SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了C语言数据类型、结构、压缩和非压缩数组、 接口、断言等等,这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力。SystemVerilog由Accellera开发,它主要定位在芯片的实现和验证流程上,并为系统级的设计流程提供了强大的连接能力。下面我们从几个方面对SystemVeril

推荐文章

热门文章

相关标签