sys.assembly_modules (Transact-SQL)
为公共语言运行时 (CLR) 程序集所定义的每个函数、过程或触发器返回一行。此目录视图将 CLR 存储过程、CLR 触发器或 CLR 函数映射到其基础实现。类型为 TA、AF、PC、FS 和 FT 的对象具有相关联的程序集模块。若要查找对象和程序集之间的关联,可以将此目录视图联接到其他目录视图。例如,在创建 CLR 存储过程时,该存储过程由 sys.objects 中的一行、sys.procedures(继承自 sys.objects)中的一行以及 sys.assembly_modules 中的一行表示。该存储过程本身由 sys.objects 和 sys.procedures 中的元数据表示。在 sys.assembly_modules 中可以找到对该过程的基础 CLR 实现的引用。
列名 |
数据类型 |
说明 |
---|---|---|
object_id |
int |
SQL 对象的对象标识号。在数据库中是唯一的。 |
assembly_id |
int |
创建此模块所基于的程序集的 ID。 |
assembly_class |
sysname |
定义此模块的程序集中的类名。 |
assembly_method |
sysname |
定义此模块的 assembly_class 中的方法名称。 对于聚合函数 (AF),该参数的值为 NULL。 |
null_on_null_input |
bit |
将模块声明为针对任意 NULL 输入生成 NULL 输出。 |
execute_as_principal_id |
int |
在其中执行上下文的数据库主体的 ID,该 ID 由 CLR 函数、存储过程或触发器的 EXECUTE AS 子句指定。 NULL = EXECUTE AS CALLER。这是默认设置。 指定的数据库主体的 ID = EXECUTE AS SELF、EXECUTE AS user_name 或 EXECUTE AS login_name。 -2 = EXECUTE AS OWNER。 |