Transact-SQL - Transact-SQL

Transact-SQL (T-SQL) является Microsoft 'песок Sybase проприетарное расширение SQL (Язык структурированных запросов), используемый для взаимодействия с реляционные базы данных. T-SQL расширяет стандарт SQL и включает процедурное программирование, локальные переменные, различные вспомогательные функции для обработки строк, обработки дат, математики и т. д., а также изменения в УДАЛИТЬ и ОБНОВИТЬ заявления.

Transact-SQL играет центральную роль в использовании Microsoft SQL Server. Все приложения, которые взаимодействуют с экземпляром SQL Server, делают это, отправляя операторы Transact-SQL на сервер, независимо от пользовательского интерфейса приложения.

Хранимые процедуры в SQL Server - это исполняемые серверные процедуры. Преимущество хранимых процедур - возможность передавать параметры.

Переменные

Transact-SQL предоставляет следующие операторы для объявления и установки локальных переменных: ЗАЯВИТЬ, НАБОР и ВЫБРАТЬ.

ЗАЯВИТЬ@ var1NVARCHAR(30);НАБОР@ var1='Некоторое имя';ВЫБРАТЬ@ var1=ИмяИЗПродажи.МагазинКУДАПользовательский ИД=100;

Управление потоком

Ключевые слова для управления потоком в Transact-SQL включают НАЧИНАТЬ и КОНЕЦ, ПЕРЕМЕНА, ПРОДОЛЖИТЬ, ИДТИ К, ЕСЛИ и ЕЩЕ, ВОЗВРАЩАТЬСЯ, ЖДАТЬ, и ПОКА.

ЕСЛИ и ЕЩЕ разрешить условное исполнение. Этот пакетный оператор напечатает «Сейчас выходные», если текущая дата - выходной день, или «Это рабочий день», если текущая дата - будний день. (Примечание. В этом коде предполагается, что воскресенье настроено как первый день недели в @@ DATEFIRST параметр.)

ЕСЛИDATEPART(dw,GETDATE())=7ИЛИ ЖЕDATEPART(dw,GETDATE())=1РАСПЕЧАТАТЬ«Сейчас выходные».;ЕЩЕРАСПЕЧАТАТЬ«Это будний день».;

НАЧИНАТЬ и КОНЕЦ отметить блок заявлений. Если условное выражение в приведенном выше примере должно управлять более чем одним оператором, мы можем использовать НАЧИНАТЬ и КОНЕЦ так:

ЕСЛИDATEPART(dw,GETDATE())=7ИЛИ ЖЕDATEPART(dw,GETDATE())=1НАЧИНАТЬРАСПЕЧАТАТЬ«Сейчас выходные».;РАСПЕЧАТАТЬ«Отдохни на выходных!»;КОНЕЦ;ЕЩЕНАЧИНАТЬРАСПЕЧАТАТЬ«Это будний день».;РАСПЕЧАТАТЬ«Иди на работу в будний день!»;КОНЕЦ;

ЖДАТЬ будет ждать заданное время или до определенного времени суток. Оператор может использоваться для задержек или для блокировки выполнения до установленного времени.

ВОЗВРАЩАТЬСЯ используется для немедленного возвращения из хранимая процедура или функция.

ПЕРЕМЕНА заканчивает ограждающий ПОКА цикл, а ПРОДОЛЖИТЬ вызывает выполнение следующей итерации цикла. Пример ПОКА цикл приведен ниже.

ЗАЯВИТЬINT;НАБОР=0;ПОКА<5НАЧИНАТЬРАСПЕЧАТАТЬ'Привет, мир.';НАБОР=+1;КОНЕЦ;

Изменения в операторах DELETE и UPDATE

В Transact-SQL оба УДАЛИТЬ и ОБНОВИТЬ операторы расширены, чтобы можно было использовать данные из другой таблицы в операции без подзапроса:

  • УДАЛИТЬ принимает объединенные таблицы в ИЗ пункт, аналогично ВЫБРАТЬ. Когда это будет сделано, имя или псевдоним, из которого должна быть удалена таблица в объединении, помещается между УДАЛИТЬ и ИЗ.
  • ОБНОВИТЬ позволяет ИЗ пункт будет добавлен. Обновляемая таблица может быть объединена в ИЗ предложение и ссылка на него по псевдониму или ссылка только в начале оператора в соответствии со стандартным SQL.

В этом примере удаляются все пользователи которые были отмечены флажком "Неактивен".

УДАЛИТЬтыИЗпользователиВ КАЧЕСТВЕтыВНУТРЕННИЙПРИСОЕДИНИТЬСЯuser_flagsВ КАЧЕСТВЕжНАты.я бы=ж.я быКУДАж.имя='праздный';

ОБЪЕМНАЯ ВСТАВКА

МАССА - это оператор Transact-SQL, который реализует процесс массовой загрузки данных, вставляя несколько строк в таблицу, считывая данные из внешнего последовательного файла. Использование ОБЪЕМНАЯ ВСТАВКА приводит к лучшей производительности, чем процессы, которые ВСТАВЛЯТЬ операторы для каждой добавляемой строки. Дополнительные подробности доступны в MSDN.

ПОПРОБУЙ ПОЙМАТЬ

Начиная с SQL Server 2005,[1] Microsoft представила дополнительные ПОПРОБУЙ ПОЙМАТЬ логика для поддержки поведения типа исключения. Такое поведение позволяет разработчикам упростить свой код и исключить @@ОШИБКА проверка после каждого оператора выполнения SQL.

- начать транзакциюНАЧИНАТЬTRAN;НАЧИНАТЬПЫТАТЬСЯ- выполнить каждое заявлениеВСТАВЛЯТЬВТАБЛИЦА(ИМЯ)ЗНАЧЕНИЯ("ABC");ВСТАВЛЯТЬВТАБЛИЦА(ИМЯ)ЗНАЧЕНИЯ('123');- совершить транзакциюСОВЕРШИТЬTRAN;КОНЕЦПЫТАТЬСЯНАЧИНАТЬЛОВИТЬ- откатить транзакцию из-за ошибкиОТКАТTRAN;КОНЕЦЛОВИТЬ;

Смотрите также

Рекомендации

  1. ^ «Улучшения T-SQL в SQL Server 2012», Джонатан Аллен, 19 марта 2012 г., infoq.com

внешняя ссылка