
- •Семантическое моделирование данных: er-диаграммы
- •Реляционная модель данных: домены и отношения Общая характеристика реляционной модели данных
- •Типы данных – множество значений, множество операций
- •Простые типы данных
- •Структурированные типы данных
- •Ссылочные типы данных
- •Типы данных, используемые в реляционной модели
- •Отношения, атрибуты, кортежи отношения Определения и примеры
- •Свойства отношений
- •Первая нормальная форма
- •Реляционная модель данных: целостность
- •Целостность в реляционной модели данных
- •Реляционная модель данных: реляционная алгебра
- •Ограничения на операции
- •Соединение
- •Деление
- •Манипулирование реляционными данными
- •Реляционная модель данных: реляционное исчисление кортежей Реляционное исчисление
- •Исчисление кортежей
- •Реляционная алгебра и реляционное исчисление
- •Проектирование реляционных баз данных на основе принципов нормализации: функциональные зависимости
- •Проектирование реляционных баз данных на основе принципов нормализации: 1nf, 2nf, 3nf, bcnf Нормальная форма
- •Роль нормализации в проектировании реляционных баз данных
- •Нормальные формы
- •Первая нормальная форма (1nf)
- •Вторая нормальная форма (2nf)
- •Третья нормальная форма (3nf)
- •Нормальная форма Бойса — Кодда (bcnf)
- •Типы данных Transact-sql Типы данных (Transact-sql)
- •Типы данных
- •Преобразования типа Transact-sql Преобразование типов данных (компонент Database Engine)
- •Скалярные выражения Transact-sql
- •Логические выражения Transact-sql Логические операторы (Transact-sql)
- •Табличные выражения Transact-sql Табличные выражения
- •7.2.1. Предложение from
- •7.2.1.1. Соединённые таблицы
- •7.2.1.2. Псевдонимы таблиц и колонок
- •7.2.1.3. Подзапросы
- •7.2.1.4. Табличные функции
- •7.2.2. Предолжение where
- •7.2.3. Предложения group by и having
- •7.2.4. Обработка оконных функций
- •Обобщенные табличные выражения Transact-sql Применение обобщенных табличных выражений
- •With обобщенное_табличное_выражение (Transact-sql)
- •Рекомендации по созданию и использованию обобщенных табличных выражений
- •Рекомендации по созданию и использованию обобщенных табличных выражений
- •Рекомендации по созданию и использованию рекурсивных отв
- •Инструкции языка управления потоком Transact-sql Язык управления потоком (Transact-sql)
- •Сценарии и пакеты Transact-sql Сценарии языка Transact-sql
- •Инструкции языка описания данных Transact-sql Инструкции языка описания данных ddl (Transact-sql)
- •Инструкции alter (Transact-sql)
- •Инструкции create (Transact-sql)
- •Инструкции drop (Transact-sql)
- •Ограничения целостности Transact-sql
- •Инструкции языка обработки данных Transact-sql
- •Предложение for (Transact-sql)
- •Инструкции языка контроля доступа к данным Transact-sql
- •Хранимые процедуры Transact-sql Хранимые процедуры (компонент Database Engine)
- •Функции Transact-sql Основные сведения о пользовательских функциях
- •Триггеры Transact-sql Триггеры dml
- •Курсоры Transact-sql Курсоры
- •Использование простого курсора и синтаксиса
- •Индексы Transact-sql Индексы
- •Вторичный индекс path типа данных xml
- •Вторичный индекс value типа данных xml
- •Вторичный индекс property
- •Управление транзакциями в sql Server Инструкции транзакций (Transact-sql)
- •Журналирование в sql Server Журнал транзакций (sql Server)
- •Просмотр журнала ошибок sql Server
- •Управление безопасностью в sql Server
- •Массовый импорт и экспорт данных в sql Server Массовый импорт и экспорт данных (sql Server)
- •Методы массового импорта и экспорта данных
- •Файлы форматирования
- •Метаданные в sql Server Метаданные (службы Master Data Services)
- •Распределенные запросы и распределенные транзакции в sql Server Распределенные запросы
- •Распределенные транзакции Transact-sql
- •Распределенные запросы и распределенные транзакции
Сценарии и пакеты Transact-sql Сценарии языка Transact-sql
SQL Server 2008 R2
Сценарий — это серия инструкций языка Transact-SQL, которая хранится в файле. Данные из этого файла можно использовать в качестве исходных для редактора кода среды Среда SQL Server Management Studio или программ sqlcmd и osql. Эти программы будут выполнять инструкции SQL из файла.
Сценарии языка Transact-SQL содержат один или несколько пакетов. Команда GO означает конец пакета. Если сценарий языка Transact-SQL не содержит команд GO, то он выполняется как единый пакет.
Сценарии языка Transact-SQL можно использовать следующим образом:
Сохраните как механизм резервной копии постоянную копию шагов, которые выполнялись при создании и заполнении базы данных на сервере.
Перенесите инструкции с одного компьютера на другой, когда появится соответствующее приглашение.
Быстро обучите новых работников разбираться в коде, изменять код и находить в нем ошибки.
Пакеты
SQL Server 2008 R2
Другие версии
1 из 1 оценили этот материал как полезный - Оценить эту тему
Пакет является группой из одной или нескольких инструкций языка Transact-SQL, отправляемых единовременно из приложения в SQL Server для выполнения. Сервер SQL Server компилирует инструкции пакета в единый исполняемый модуль, называемый планом выполнения. Инструкции в плане выполнения затем последовательно выполняются.
Каждая инструкция Transact-SQL должна заканчиваться точкой с запятой. Сейчас это не обязательно, но против инструкций без точки с запятой есть серьезные возражения, и в последующих версиях Microsoft SQL Server такой возможности может не быть.
Ошибка компиляции, например синтаксическая ошибка, прекращает компиляцию плана выполнения. Поэтому никакие инструкции в пакете не выполняются.
Ошибка выполнения, например арифметическое переполнение или нарушение ограничения, приводит к одному из двух результатов:
Большинство ошибок времени выполнения останавливают текущую инструкцию и инструкции, следующие за ней в пакете.
Некоторые ошибки времени выполнения, например нарушения ограничений, останавливает только текущую инструкцию. Все остальные инструкции в пакете будут выполнены.
Это не оказывает влияния на инструкции, которые выполняются до той инструкции, в которой встретилась ошибка выполнения. Единственное исключение — если пакет находится в транзакции, и из-за ошибки будет выполнен откат транзакции. В этом случае будет выполнен откат любых незафиксированных изменений данных, сделанных перед ошибкой выполнения.
Например, предположим, что в пакете имеется 10 инструкций. Если пятая инструкция содержит синтаксическую ошибку, никакие инструкции в пакете не выполнятся. Если пакет скомпилирован, и затем вторая инструкция завершается неудачно при выполнении, это не повлияет на результаты первой инструкции, потому что она уже выполнена.
Сервер
SQL Server обеспечивает повторную компиляцию
на уровне инструкций. Это означает, что
если инструкция вызывает повторную
компиляцию, повторно компилируется
только эта инструкция, а не весь пакет.
В этом состоит отличие от характера
действий SQL Server 2000. Рассмотрим следующий
пример, в котором в одном пакете содержатся
инструкция CREATE TABLE
и четыре
инструкции INSERT
.
CREATE TABLE dbo.t3(a int) ;
INSERT INTO dbo.t3 VALUES (1) ;
INSERT INTO dbo.t3 VALUES (1,1) ;
INSERT INTO dbo.t3 VALUES (3) ;
GO
SELECT * FROM dbo.t3 ;
Вначале
пакет компилируется. Инструкция CREATE
TABLE
компилируется, но так как
таблица dbo.t3
еще не создана,
инструкции INSERT
не
компилируются.
Затем
пакет начинает выполняться. Создается
таблица. Первая инструкция INSERT
компилируется
и немедленно выполняется. Таблица теперь
содержит одну строку. Затем компилируется
вторая инструкция INSERT
.
Компиляция заканчивается с ошибкой, и
выполнение пакета завершается.
Инструкция SELECT
возвращает
одну строку.
В
SQL Server 2000 пакет начинает выполняться, и
создается таблица. Три инструкции INSERT
одна
за другой компилируются, но не выполняются.
Так как вторая инструкция INSERT
вызывает
ошибку компиляции, весь пакет завершается.
Инструкция SELECT
не возвращает
ни одной строки.
Правила использования пакетов
Для использования пакетов применяются следующие правила.
Инструкции CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER и CREATE VIEW не могут быть объединены с другими инструкциями в пакете. Инструкция CREATE должна быть первой инструкцией в пакете. Все последующие инструкции в этом пакете рассматриваются как часть определения первой инструкции CREATE.
В одном и том же пакете нельзя сначала изменить таблицу и затем обратиться к новым столбцам.
Если инструкция EXECUTE — первая инструкция в пакете, ключевое слово EXECUTE не требуется. Ключевое слово EXECUTE требуется, если инструкция EXECUTE не является первой инструкцией в пакете.
Важно! |
Файлы пакета могут содержать учетные данные, хранимые в виде обычного текста. Во время выполнения пакета учетные данные могут отображаться на экране пользователя. |