从上面的SQL语句可以看出,主要用到了两个 sys.all_objects 和 sys.sql_modules 两个系统存储过程,其中 sys.all_objects 是 sql server 2012 版本中的系统视图,在 更早期的 sql server 版本中,应该用 sys.objects,同时,sys.objects 在 2012 中也是可以用的,只不过考虑到后续兼容性,在新版本中,用新的 name 还是比较好。
Sys.All_Objects(sys.objects) 该视图 很出名,是经常使用到的,主要是:显示所有架构范围内的用户定义对象和系统对象的 UNION 主要字段:
1. Name:对象名
2. Object_id:对象标识号,在数据中是唯一的
3. Principal_id :架构所有者ID
4. Parent_object_id:此对象所属对象的ID,0 = 不是子对象
5. Type:对象类型,常用的类型有, AF = 聚合函数 P = SQL 存储过程 V = 视图 TT = 表类型 U = 表(用户定义类型)
对象类型:
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 = 扩展存储过程
6. Type_desc:对象类型的说明
7. Create_date / Modify_date :创建日期 / 修改日期
8. is_ms_shipped:是否为 内部 SQL Server 组建所创建的对象,常用来判断 是否是 系统内置或用户自定义 的对象 Sys.Sql_Modules
MSDN : 对每个 SQL 语言定义的模块对象都返回一行。 类型为 P、RF、V、TR、FN、IF、TF 和 R 的对象均有关联的 SQL 模块。 该视图 不是太常用,但是要返回 某些对象的 创建信息,如一个表格的 架构、字段等信息,就需要用这视图了,稍后会在介绍字段后再介绍这个视图。 注意,该视图的作用域是当前 DB,并不是当前Server,所以使用前,一定注意前面加 use DBName 的信息 主要字段:
1. Object_id:对象标识号,在数据中是唯一的
2. Definition:用于定义此模块的 SQL 文本 其实只要大家亲自操作下,就很容易明白,Definition 中的内容,就和下图中的操作是一样的:
备注 | 修改日期 | 修改人 |
其他原因...增加type值含义 | 2022-07-19 16:16:09[当前版本] | 系统管理员 |
其他原因...增加查看函数的条件 | 2022-07-19 16:11:16 | 系统管理员 |
CREAT | 2022-07-17 11:51:41 | 系统管理员 |
附件类型 |
|
|
|