SQL sever 中系统表sys.objects的作用与字段含义
2016-04-14 00:00
489 查看
摘要: SQL sever 中系统表sys.objects的作用与字段含义
0 定义
官方对sys.objects的定义:在数据库中创建的每个用户定义的架构作用域内的对象在该表中均对应一行。
这种翻译,真心的无力吐槽。我们用中文再翻译下这句中文:你在库中创建一张表,这里就会记录一条。
1 查看
执行脚本看下它的样子。
2 表中字段解释
3 有什么作用
3.1 你可以用下面的命令列出感兴趣的所有对象
0 定义
官方对sys.objects的定义:在数据库中创建的每个用户定义的架构作用域内的对象在该表中均对应一行。
这种翻译,真心的无力吐槽。我们用中文再翻译下这句中文:你在库中创建一张表,这里就会记录一条。
1 查看
执行脚本看下它的样子。
SELECT * FROM sys.objects
2 表中字段解释
序号 | 列名 | 数据类型 | 说明 |
1 | name | sysname | 对象名。 |
2 | object_id | int | 对象标识号。 在数据库中是唯一的。 |
3 | principal_id | int | 如果不是架构所有者,则为单个所有者的 ID。 默认情况下,架构包含的对象由架构所有者拥有。 不过,通过使用 ALTER AUTHORIZATION 语句更改所有权可以指定备用所有者。 如果没有备用的单个所有者,则为 NULL。如果对象类型为下列类型之一,则为 NULL: C = CHECK 约束 D = DEFAULT(约束或独立) F = FOREIGN KEY 约束 PK = PRIMARY KEY 约束 R = 规则(旧式,独立) TA = 程序集(CLR 集成)触发器 TR = SQL&nbs 3ff0 p;触发器 UQ = UNIQUE 约束 |
4 | schema_id | int | 包含该对象的架构的 ID。始终包含在sys或INFORMATION_SCHEMA架构中的架构作用域内的系统对象。 |
5 | parent_object_id | int | 此对象所属对象的 ID。 0 = 不是子对象。 |
6 | type | char(2) | 对象类型: AF = 聚合函数 (CLR) C = CHECK 约束 D = DEFAULT(约束或独立) F = FOREIGN KEY 约束 FN = SQL 标量函数 FS = 程序集 (CLR) 标量函数 FT = 程序集 (CLR) 表值函数 IF = SQL 内联表值函数 IT = 内部表 P = SQL 存储过程 PC = 程序集 (CLR) 存储过程 PG = 计划指南 PK = PRIMARY KEY 约束 R = 规则(旧式,独立) RF = 复制筛选过程 S = 系统基表 SN = 同义词 SO = 序列对象 适用范围:SQL Server 2012 到 SQL Server 2016。 SQ = 服务队列 TA = 程序集 (CLR) DML 触发器 TF = SQL 表值函数 TR = SQL DML 触发器 TT = 表类型 U = 表(用户定义类型) UQ = UNIQUE 约束 V = 视图 X = 扩展存储过程 |
7 | type_desc | nvarchar(60) | 对对象类型的说明: AGGREGATE_FUNCTION CHECK_CONSTRAINT CLR_SCALAR_FUNCTION CLR_STORED_PROCEDURE CLR_TABLE_VALUED_FUNCTION CLR_TRIGGER DEFAULT_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT 适用范围:SQL Server 2012 到 SQL Server 2016。 SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TABLE_TYPE UNIQUE_CONSTRAINT USER_TABLE View |
8 | create_date | datetime | 对象的创建日期。 |
9 | modify_date | datetime | 上次使用 ALTER 语句修改对象的日期。 如果对象为表或视图,则创建或修改表或视图的聚集索引时,modify_date 也会随之更改。 |
10 | is_ms_shipped | bit | 对象由内部 SQL Server 组件创建。 |
11 | is_published | bit | 对象为发布对象。 |
12 | is_schema_published | bit | 仅发布对象的架构。 |
3.1 你可以用下面的命令列出感兴趣的所有对象
SELECT * FROM sysobjects WHERE xtype = <type of interest> SELECT * FROM sysobjects WHERE xtype = 'V' --例如:查看视图3.2 判断数据库中是否已经存在某个表,有的话就删除该表
----方法一: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and type='U')) drop table [dbo].[表名] ----方法二: if exists (Select * From sysObjects Where type='U' And Name='表名')) drop table [dbo].[表名]一般建议不要更新此表,但是查询还是OK的。
相关文章推荐
- sql server 2005用户权限设置深入分析
- SQL Server 2005 DTS导入平面数据出现错误解决方案
- Access to SQLserver 数据库生迁脚本编写器(DB_CreateSqlEV1.06下载)
- SQL Server创建维护计划失败(SQL Server:14234 错误)的解决方法
- 我的服务器SQL2000的sqlserver占用了90%的cpu,怎么查是那个库?
- SqlServer 2005 T-SQL Query 学习笔记(3)
- 利用脚本自动安装SQLServer的实现步骤分析
- sqlserver FOR XML PATH 语句的应用
- sqlserver 手工实现差异备份的步骤
- SqlServer 扩展属性的介绍
- SqlServer提示“列前缀tempdb.无效: 未指定表名”问题解决方案
- sqlserver not in 语句使程充崩溃
- 数据库备份 SQLServer的备份和灾难恢复
- Windows下使用性能监视器监控SqlServer的常见指标
- sqlserver存储过程语法详解
- sqlserver 数据库日志备份和恢复步骤
- SQL Server中的Forwarded Record计数器影响IO性能的解决方法
- sqlserver 2000中创建用户的图文方法
- 解析如何在sqlserver代理中配置邮件会话
- SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题