sql server 系统表结构列说明sysindexes、syscolumns、sysobjects
select * from sysindexkeys --包含有关数据库的索引中的键或列的信息 select * from sysindexes --数据库中的每个索引和表在表中各占一行。 select * from syscolumns --每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行 select * from sysobjects --在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。
sys.indexkeys --包含有关数据库的索引中的键或列的信息
列名称 | 数据类型 | 说明 |
---|---|---|
id | int | 表的 ID。 |
indid | smallint | 索引的 ID。 |
colid | smallint | 列的 ID。 |
keyno | smallint | 该列在索引中的位置。 |
sys.sysobjects --在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。
列名称 | 数据类型 | 说明 |
---|---|---|
name | sysname | 对象名称 |
ID | int | 对象标识号 |
xtype | char(2) | 对象类型。 可以是以下对象类型之一: AF = 聚合函数 (CLR) C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 FS = 程序集 (CLR) 标量函数 FT = 程序集 (CLR) 表值函数 IF = 内联表函数 IT = 内部表 P = 存储过程 PC = 程序集 (CLR) 存储过程 PK = PRIMARY KEY 约束(类型为 K) RF = 复制筛选存储过程 S = 系统表 SN = 同义词 SO = 序列 SQ = 服务队列 TA = 程序集 (CLR) DML 触发器 TF = 表函数 TR = SQL DML 触发器 TT = 表类型 U = 用户表 UQ = UNIQUE 约束(类型为 K) V = 视图 X = 扩展存储过程 |
uid | smallint | 对象所有者的架构 ID。 对于从早期版本的SQL Server升级的数据库,架构 ID 等于所有者的用户 ID。 如果用户数和角色数超过 32,767,则发生溢出或返回 NULL。 ** 重要 **如果使用以下任何SQL Server DDL 语句,则必须使用 sys.objects 目录视图而不是 sys.sysobjects。 CREATE | ALTER | DROP USER CREATE | ALTER | DROP ROLE CREATE | ALTER | DROP APPLICATION ROLE CREATE SCHEMA ALTER AUTHORIZATION ON OBJECT |
info | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
状态 | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
base_schema_ver | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
replinfo | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
parent_obj | int | 父对象的对象标识号。 例如,表 ID(如果父对象是触发器或约束)。 |
crdate | datetime | 对象的创建日期。 |
ftcatid | smallint | 注册为使用全文检索的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。 |
schema_ver | int | 在每次更改表的架构时都会增加的版本号。 始终返回 0。 |
stats_schema_ver | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
type | char(2) | 对象类型。 可以是以下其中一个值: AF = 聚合函数 (CLR) C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 FN = 标量函数 FS = 程序集 (CLR) 标量函数 FT = 程序集 (CLR) 表值函数 IF = 内联表函数 IT - 内部表 K = PRIMARY KEY 或 UNIQUE 约束 L = 日志 P = 存储过程 PC = 程序集 (CLR) 存储过程 R = 规则 RF = 复制筛选存储过程 S = 系统表 SN = 同义词 SQ = 服务队列 TA = 程序集 (CLR) DML 触发器 TF = 表函数 TR = SQL DML 触发器 TT = 表类型 U = 用户表 V = 视图 X = 扩展存储过程 |
userstat | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
sysstat | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
indexdel | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
refdate | datetime | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
版本 | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
deltrig | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
instrig | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
updtrig | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
seltrig | int | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
category | int | 用于发布、约束和标识。 |
cache | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
sys.syscolumns --为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。
列名称 | 数据类型 | 说明 |
---|---|---|
name | sysname | 列或过程参数的名称。 |
id | int | 此列所属表的对象 ID,或者与此参数关联的存储过程的 ID。 |
xtype | tinyint | sys.types 中的物理存储类型。 |
typestat | tinyint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
xusertype | smallint | 扩展用户定义数据类型的 ID。 如果数据类型的数字超过 32,767,则溢出或返回 NULL。 |
length | smallint | sys 的最大物理存储长度。类型。 |
xprec | tinyint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
xscale | tinyint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
colid | smallint | 列 ID 或参数 ID。 |
xoffset | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
bitpos | tinyint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
reserved | tinyint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
colstat | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
cdefault | int | 此列的默认值的 ID。 |
domain | int | 此列的规则或 CHECK 约束的 ID。 |
数字 | smallint | 过程分组时的子过程号。 0 = 非过程项 |
colorder | smallint | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
autoval | varbinary(8000) | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
offset | smallint | 此列所在行的偏移量。 |
collationid | int | 列的排序规则的 ID。 对于非字符列,此值为 NULL。 |
status | tinyint | 用于说明列或参数的属性的位图: 0x08 = 列允许空值。 0x10 = 添加 varchar 或 varbinary 列时,ANSI 填充生效。 对 varchar 保留尾随空白,对 varbinary 列保留尾随零。 0x40 = 参数为 OUTPUT 参数。 0x80 = 列为标识列。 |
type | tinyint | sys 中的物理存储类型。类型。 |
usertype | smallint | sys.types 中用户定义的数据类型的 ID。 如果数据类型的数字超过 32,767,则溢出或返回 NULL。 |
printfmt | varchar(255) | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
prec | smallint | 此列的精度级别。 -1 = xml 或大值类型。 |
scale | int | 此列的缩放。 NULL = 数据类型不是数值。 |
iscomputed | int | 指示列是否为计算列的标志: 0 = 非计算列。 1 = 计算列。 |
isoutparam | int | 指示过程参数是否为输出参数: 1 = True 0 = False |
isnullable | int | 指示列是否允许空值: 1 = True 0 = False |
整理 | sysname | 列的排序规则的名称。 如果不是基于字符的列,则为 NULL。 |
--整理自对象目录视图 (Transact-SQL) - SQL Server | Microsoft Docs
--由于业务需要使用这几个表,所以先整理出来复查。