微软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