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

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

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

Ответы

Ответ 1

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

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

Другим трюком здесь является то, как вы отделяете отдельные партии в файле/документе. В 99% инструментов Sql Server разделитель пакетов "GO". Однако это то, что настраивается инструментом, и поэтому вы будете сталкиваться с нечетным человеком, который время от времени использует что-то еще.

Ответ 2

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

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

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

Ответ 3

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

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

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

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