系统表dbo.sysobjects

文章目录
  1. 1. ♠ 简介
  2. 2. ♠ 表结构
  3. 3. ♠ 使用
    1. 3.1. ♠ 设置表主键

简介

在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。

只有在 tempdb 内,每个临时对象才在该表中占一行。

表结构

字段 中文 类型 可空 缺省值 备注
name 对象名 sysname
Id 对象ID int 对象标识号
xtype 对象类型 char(2) 可以是下列对象类型中的一种:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
uid 用户ID 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 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
userstat smallint
sysstat 内部状态信息 smallint
indexdel smallint
refdate datetime
version int
deltrig int
instrig int
updtrig int
seltrig int
category int 用于发布、约束和标识
cache smallint

使用

设置表主键

当表Table没有主键时,添加主键FlowNo

1
2
3
4
5
6
IF NOT EXISTS (select * from dbo.sysobjects where parent_obj = OBJECT_ID('[dbo].[Table]')
AND name='PK_Table' and xtype='PK')
BEGIN
ALTER TABLE Table Add Constraint PK_Table Primary Key (FlowNo)
END
GO

(幽蛰 写于 2018.02.05)