关于SQL Server中的系统表之一 sysobjects
微软Sql Server数据库是企业开发管理中最常用的数据库系统之一。其功能强大而且使用简单、方便。我们在数据库中创建数据库、表、视图、触发器、存储过程、函数等信息。
最常用的功能之一,查询数据,例如:
SELECT [SysAreaId]
,[AreaName]
,[AreaNamePinYin]
,[ShortName]
,[AreaTypeId]
,[Depth]
,[ParentId]
,[PostCode]
FROM [SavionPlatMisDB].[dbo].[SysArea]
查询结果如下图:

从上图结果看出,查询结果是以网状行、列形式展示出来的。这就是关系型数据库的特性之一。
那么我们创建的表、视图等信息是如何存储的呢?其实SQL Server数据库是一种“自解释”性是存储介质。我们创建的表、视图等也是存储在其系统默认数据库与表中。
其中之一就是sysobjects表。
SQL Server的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。
以下是此系统表的字段名称和相关说明。
| 列名 | 数据类型 | 描述 |
|---|---|---|
| name | sysname | 对象名。 |
| Id | int | 对象标识号。 |
| xtype | char(2) | 对象类型。可以是下列对象类型中的一种:
C = CHECK 约束 |
| uid | smallint | 所有者对象的用户 ID。 |
| info | smallint | 保留。仅限内部使用。 |
| status | int | 保留。仅限内部使用。 |
| base_schema_ ver |
int | 保留。仅限内部使用。 |
| replinfo | int | 保留。供复制使用。 |
| parent_obj | int | 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 |
| crdate | datetime | 对象的创建日期。 |
| ftcatid | smallint | 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。 |
| schema_ver | int | 版本号,该版本号在每次表的架构更改时都增加。 |
| stats_schema_ ver |
int | 保留。仅限内部使用。 |
| type | char(2) | 对象类型。可以是下列值之一:
C = CHECK 约束 |
| userstat | smallint | 保留。 |
| sysstat | smallint | 内部状态信息。 |
| indexdel | smallint | 保留。 |
| refdate | datetime | 留作以后使用。 |
| version | int | 留作以后使用。 |
| deltrig | int | 保留。 |
| instrig | int | 保留。 |
| updtrig | int | 保留。 |
| seltrig | int | 保留。 |
| category | int | 用于发布、约束和标识。 |
| cache | smallint | 保留。 |
当xtype='U' and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。
用以下代码就可以列出库misa中所有的用户建立的表名:
select * from dbo.sysobjects
where xtype='U'and status>0
关于SQL Server中的系统表之一 sysobjects的更多相关文章
- MS SQL SERVER 中的系统表
MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行. 2 syscomments 包含每 ...
- SQL Server 中各个系统表的作用
来源:http://www.hoky.org/blog/ sysaltfiles 主数据库 保存数据库的文件syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置 ...
- SQL Server中各个系统表的作用
sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序 s ...
- Sql server中如何将表A和表B的数据合并(乘积方式)
sql server中如何将表A 和表B的数据合并成乘积方式,也就是说表A有2条数据,表B有3条数据,乘积后有6条数据, 这就要用到sql中的笛卡尔积方式了 1.什么是笛卡尔积 笛卡尔积在SQL中的实 ...
- sql server中的系统数据库
1.master数据库 master是SQL Server中最重要的数据库,是整个数据库服务器的核心.用户不能直接修改该数据库,如果损坏了master数据库,整个SQL Server服务器将不能工作. ...
- SQL SERVER中查询某个表或某个索引是否存在
查询某个表是否存在: 在实际应用中可能需要删除某个表,在删除之前最好先判断一下此表是否存在,以防止返回错误信息.在SQL SERVER中可通过以下语句实现: IF OBJECT_ID(N'表名称', ...
- [转]SQL Server中临时表与表变量的区别
[转]http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是 ...
- SQL Server中临时表与表变量的区别
我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...
- 查看SQL Server中的锁表及解锁
有时候系统很慢,有可能是SQL Server数据库中某些表被锁定 --查看被锁表(需查多几次,有些临时锁很快会自动解锁): SELECT request_session_id AS spid, OBJ ...
随机推荐
- elasticsearch自动按天创建索引脚本
elasticsearch保存在一个索引中数据量太大无法查询,现在需要将索引按照天来建,查询的时候关联查询即可 有时候es集群创建了很多索引,删不掉,如果是测试环境或者初始化es集群(清空所有数据), ...
- percona-xtrabackup工具实现mysql5.6.34的主从同步复制
percona-xtrabackup工具实现mysql5.6.34的主从同步复制 下载并安装percona-xtrabackup工具 # wget https://www.percona.com/do ...
- oracle 11.2.0.4 rac 打补丁
本次安装pus环境是11.2.0.4 rac,打的patch为11.2.0.4.180717 (Includes Database PSU),gi补丁和数据库补丁一起打 安装最新opatch版本 un ...
- 粘包-socketserver实现并发
- 11)django-ORM(操作增删改查)
ORM从增删改查等方面说明 一:创建数据 #创建数据两种方式1,推荐方式1 UserInfo.objects.create(username=") #方式1变种 user_dict={&qu ...
- 洛谷P3345 [ZJOI2015]幻想乡战略游戏 [动态点分治]
传送门 调了两个小时,终于过了-- 凭啥人家代码80行我180行啊!!! 谁叫你大括号换行 谁叫你写缺省源 思路 显然,补给点所在的位置就是这棵树的带权重心. 考虑size已知时如何找重心:一开始设答 ...
- Webform中<%%>
其实<%%>很早之前就见过了,只是会用一点功能,其它的不甚了解.今天偶尔见到了它的庐山真面目,现在共享给大家. 语法 代码块呈现(<%%>)定义了当呈现页时执行的内联代码或内联 ...
- Where is NuGet in VS2017 Community?
问题:在VS2017中找不到NuGet 回答:https://stackoverflow.com/questions/43702484/where-is-nuget-in-vs2017-communi ...
- Ubuntu16.04安装Maven3.5.4
本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软件版本为准. 操作系统:Ubuntu 16.04.3 LTS Maven 版本:Apache Maven 3.5.4 JDK 版本:J ...
- Confluence 6 配置日志
我们推荐你根据你的需求来配置你自己的 Confluence 日志.你可以有下面 2 种方法来修改你的日志: 通过 Confluence 管理员控制台进行配置 – 你的修改仅在本次修改有效,下次重启后将 ...