Что такое модуль SQL Server? - PullRequest
       11

Что такое модуль SQL Server?

3 голосов
/ 08 апреля 2009

Я только что наткнулся на системное представление sys.sql_modules сегодня. Что такое модуль по сравнению с объектом БД? Представление возвращает наиболее заметный столбец, содержащий текст определения, возвращаемый sys.syscomments.

Ответы [ 4 ]

5 голосов
/ 10 апреля 2009

Это блоки операторов T-SQL, из которых состоит хранимая процедура, хранимая функция, триггер или определение представления.

Из "Книги в Интернете" в разделе "СОЗДАНИЕ ПРОЦЕДУРЫ":

Получение информации о хранимых Процедуры Для отображения определения хранимой процедуры Transact-SQL, используйте представление каталога sys.sql_modules в базе данных, в которой процедура существует.

В sys.sql_modules вы найдете фактический код T-SQL.

Марк

5 голосов
/ 21 февраля 2014

Модуль на языке SQL-Server - это отдельный объект, который содержит пакеты SQL, такие как представление, табличная функция, хранимая процедура, триггер или скалярная функция. Объект SQL - это более всеобъемлющий термин, который включает в себя те, которые содержат выражения SQL, такие как проверки или ограничения по умолчанию. Модуль раньше назывался «подпрограммой» до SQL Server 2005, но я думаю, что эти два термина взаимозаменяемы.

Скрипт построения таблицы не хранится в SQL Server из-за легкости, с которой компоненты таблицы можно изменять отдельно. Поэтому он рассматривается как объект, а не как модуль.
Типичными объектами, которые также не считаются модулями, являются системные таблицы, ограничения по умолчанию, ограничения внешнего ключа, очереди обслуживания, ограничения проверки, пользовательские таблицы, ограничения первичного ключа, внутренние таблицы и ограничения уникальности.

Столбцы не считаются объектами. Ни один не индексы.

Да, все гораздо сложнее, чем можно подумать.

1 голос
/ 12 сентября 2018

Я сталкивался с этим вопросом, когда хотел получить подробное объяснение команды EXECUTE. Я хотел иметь глубокое понимание того, как читать справку по t-sql, и понял, что не знаю, что означает модуль.

Я просто хочу добавить их в список модулей sql:

  • системная хранимая процедура,
  • пользовательская хранимая процедура,
  • CLR хранимая процедура,
  • скалярная пользовательская функция,
  • или расширенная хранимая процедура.

Выполняет командную строку или строку символов в пакете Transact-SQL или один из следующих модулей: системная хранимая процедура , пользовательская хранимая процедура , CLR хранимая процедура , скалярная пользовательская функция или расширенная хранимая процедура . Оператор EXECUTE может использоваться для отправки сквозных команд на связанные серверы. Кроме того, контекст, в котором выполняется строка или команда, может быть задан явно. Метаданные для набора результатов можно определить с помощью параметров WITH RESULT SETS.

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/execute-transact-sql?view=sql-server-2017

1 голос
/ 08 апреля 2009

Модули - это функции, процедуры, очереди и триггеры. Эти Модули называют Объектами. Вот что я понял из этой статьи, которая описывает «EXECUTE AS»:

ВЫПОЛНИТЬ КАК

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...