我今天刚遇到系统视图sys.sql_modules
。什么是模块与DB对象?该视图最突出地返回一个包含定义文本的列,由sys.syscomments
返回。
答案 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”的文章中所理解的: