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.objectssys.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。

权限

在 SQL Server 2005 及更高版本中,目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。有关详细信息,请参阅元数据可见性配置