系统表dbo.syscolumns

文章目录
  1. 1. ♠ 简介
  2. 2. ♠ 表结构
  3. 3. ♠ 使用
    1. 3.1. ♠ 增加列

简介

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

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

表结构

字段 中文 类型 可空 缺省值 备注
name sysname 列名或过程参数的名称。
id int 该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtype tinyint systypes 中的物理存储类型。
typestat tinyint
xusertype smallint 扩展的用户定义数据类型 ID。
length smallint systypes 中的最大物理存储长度。
xprec tinyint
xscale tinyint
colid smallint 列或参数 ID。
xoffset smallint
bitpos tinyint
reserved tinyint
colstat smallint
cdefault int 该列的默认值 ID。
domain int 该列的规则或 CHECK 约束 ID。
number smallint 过程分组时(0 表示非过程项)的子过程号。
colorder smallint
autoval varbinary(255)
offset smallint 该列所在行的偏移量;如果为负,表示可变长度行。
status tinyint 用于描述列或参数属性的位图:
0x08 = 列允许空值
0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零
0x40 = 参数为 OUTPUT 参数
0x80 = 列为标识列。
type tinyint systypes 中的物理存储类型。
usertype smallint systypes 中的用户定义数据类型 ID。
printfmt varchar(255)
prec smallint 该列的精度级别。
scale int 该列的小数位数。
iscomputed int 表示是否已计算该列的标志:0 = 未计算、1 = 已计算。
isoutparam int 表示该过程参数是否是输出参数:1 = 真、0 = 假。
isnullable int 表示该列是否允许空值:1 = 真、0 = 假。

使用

增加列

Table添加列C1

字段 中文 类型 可空 缺省值 备注
C1 varchar(50) ‘’ 新增的列
1
2
3
4
IF NOT EXISTS (SELECT * FROM dbo.syscolumns WHERE id = object_id('[dbo].[Table]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1 AND name = 'C1')
ALTER TABLE [dbo].[Table] ADD C1 varchar(50) not null default ''
GO

(幽蛰 写于 2018.02.05)