什么是SQL Server模块?

时间:2009-04-08 18:10:50

标签: sql-server

我今天刚遇到系统视图sys.sql_modules。什么是模块与DB对象?该视图最突出地返回一个包含定义文本的列,由sys.syscomments返回。

3 个答案:

答案 0 :(得分:5)

构成存储过程,存储函数,触发器或视图定义的T-SQL语句块。

“创建程序”部分中的“联机丛书”:

  

获取有关存储的信息   过程显示定义   Transact-SQL存储过程的一部分,   使用sys.sql_modules目录视图   在数据库中的程序   存在。

在sys.sql_modules中,您将找到实际的T-SQL代码。

马克

答案 1 :(得分:5)

SQL-Server-speak中的模块是一个独立的对象,它包含sql批处理,例如视图,表值函数,存储过程,触发器或标量函数。 SQL对象是一个更全面的术语,包括一些包含SQL表达式的术语,例如检查或默认约束。在SQL Server 2005之前,模块曾经被称为“例程”,但我认为这两个术语可以互换使用。

表构建脚本未存储在SQL Server中,因为可以轻松地单独更改表的组件。因此,它被视为一个对象而不是一个模块 不被视为模块的典型对象是系统表,默认约束,外键约束,服务队列,检查约束,用户表,主键约束,内部表和唯一约束。

列不被视为对象。索引也不是。

是的,它比人们最初想的要复杂得多。

答案 2 :(得分:1)

模块是函数,过程,队列和触发器。这些模块调用对象。这就是我从这篇描述“EXECUTE AS”的文章中所理解的:

EXECUTE AS