Что такое партия? - PullRequest
       6

Что такое партия?

15 голосов
/ 10 ноября 2009

В Transact-SQL пакет представляет собой набор операторов SQL, представленных вместе и выполненных в виде группы, один за другим. Пакеты могут храниться в командных файлах.

Является ли файл * .sql, содержащий несколько операторов SQL, пакетным? Что еще мы считаем партией?

Ответы [ 3 ]

10 голосов
/ 10 ноября 2009

Является ли файл * .sql, содержащий несколько операторов SQL, пакетным?

Вроде. Файл * .sql может содержать несколько пакетов. Вы разграничиваете партии через разделитель партий. Вам может потребоваться несколько пакетов в файле, потому что некоторые операторы (особенно определенные команды «ALTER») могут выполняться только один раз для пакета. Это может усложнить выполнение ALTER в цикле.

Еще одна хитрость - как вы разделяете отдельные партии в файле / документе. В 99% инструментов Sql Server разделителем пакетов является «GO». Тем не менее, это то, что настраивается инструментом. Он не является частью самого языка SQL, и поэтому вы можете время от времени сталкиваться со странным человеком, который использует что-то другое, или запутаться в том, что SQL Server жалуется, если вы посылаете ему команду «GO» напрямую.

5 голосов
/ 10 ноября 2009

Пакеты не являются частью TSQL, они являются функцией редактора SQL Management Studio. Так, например, вы не можете отправить объект команды ADO.NET с «GO» как часть текста вашей команды.

Маркер пакета - «GO» указывает редактору запросов передать SQL до этого момента, прежде чем продолжить во время выполнения.

Можно настроить редактор запросов на использование другого маркера пакета, кроме "GO", но это только сбило бы с толку людей.

3 голосов
/ 10 ноября 2009

из Книги онлайн

Операторы CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER и CREATE VIEW нельзя объединять с другими операторами в пакете. Оператор CREATE должен запустить пакет. Все остальные операторы, которые следуют в этом пакете, будут интерпретированы как часть определения первого оператора CREATE.

Таблица не может быть изменена, а затем новые столбцы, на которые есть ссылки в том же пакете.

Из этого вы можете сделать вывод, что для того, чтобы изменения в структуре базы данных вступили в силу, прежде чем пытаться их использовать, требуется несколько пакетов.

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