Jump to content

Транзакт-SQL

(Перенаправлено с T-SQL )

Transact-SQL ( T-SQL ) — это (языка структурированных запросов) от Microsoft и Sybase собственное расширение SQL , используемое для взаимодействия с реляционными базами данных . T-SQL расширяет стандарт SQL, включая процедурное программирование , локальные переменные , различные вспомогательные функции для обработки строк, обработки данных, математику и т. д., а также изменения в операторах DELETE и UPDATE .

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

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

Переменные

[ редактировать ]

Transact-SQL предоставляет следующие инструкции для объявления и установки локальных переменных: DECLARE, SET и SELECT.

DECLARE @var1 NVARCHAR(30);
SET @var1 = 'Some Name';
SELECT @var1 = Name
  FROM Sales.Store
  WHERE CustomerID = 100;

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

[ редактировать ]

Ключевые слова для управления потоком в Transact-SQL включают: BEGIN и END, BREAK, CONTINUE, GOTO, IF и ELSE, RETURN, WAITFOR, и WHILE.

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

IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
   PRINT 'It is the weekend.';
ELSE
   PRINT 'It is a weekday.';

BEGIN и END выделить блок высказываний . Если в приведенном выше примере условное выражение должно управляться более чем одним оператором, мы можем использовать BEGIN и END так:

IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
BEGIN
   PRINT 'It is the weekend.';
   PRINT 'Get some rest on the weekend!';
END;
ELSE
BEGIN
   PRINT 'It is a weekday.';
   PRINT 'Get to work on a weekday!';
END;

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

RETURN используется для немедленного возврата из хранимой процедуры или функции.

BREAK завершает вложение WHILE цикл, в то время как CONTINUE вызывает выполнение следующей итерации цикла. Пример WHILE цикл приведен ниже.

DECLARE @i INT;
SET @i = 0;

WHILE @i < 5
BEGIN
   PRINT 'Hello world.';
   SET @i = @i + 1;
END;

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

[ редактировать ]

В Transact-SQL оба DELETE и UPDATE операторы улучшены, чтобы позволить использовать данные из другой таблицы в операции без необходимости использования подзапроса:

  • DELETE принимает объединенные таблицы в FROM пункт, аналогично SELECT. Когда это будет сделано, имя или псевдоним таблицы в объединении, из которой должно быть удалено, помещается между DELETE и FROM.
  • UPDATE позволяет FROM пункт, который необходимо добавить. Обновляемую таблицу можно либо объединить в FROM предложение и на него ссылаются по псевдониму или на него ссылаются только в начале оператора согласно стандартному SQL.

В этом примере удаляются все users которые были отмечены в user_flags таблица с флагом «бездействия».

DELETE u
FROM users AS u INNER JOIN user_flags AS f ON u.id = f.id
WHERE f.name = 'idle';

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

[ редактировать ]

BULK — это оператор Transact-SQL, который реализует процесс массовой загрузки данных, вставляя несколько строк в таблицу и считывая данные из внешнего последовательного файла. Использование BULK INSERT приводит к более высокой производительности, чем процессы, которые выдают отдельные INSERT операторы для каждой добавляемой строки. Дополнительные сведения доступны в MSDN .

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

[ редактировать ]

Начиная с SQL Server 2005, [1] Microsoft представила дополнительные TRY CATCH логика для поддержки поведения типа исключения. Такое поведение позволяет разработчикам упростить свой код и исключить @@ERROR проверка после каждого оператора выполнения SQL.

-- begin transaction
BEGIN TRAN;

BEGIN TRY
   -- execute each statement
   INSERT INTO MYTABLE(NAME) VALUES ('ABC');
   INSERT INTO MYTABLE(NAME) VALUES ('123');

   -- commit the transaction
   COMMIT TRAN;
END TRY
BEGIN CATCH
   -- roll back the transaction because of error
   ROLLBACK TRAN;
END CATCH;

См. также

[ редактировать ]
  1. ^ «Усовершенствования T-SQL в SQL Server 2012» , Джонатан Аллен, 19 марта 2012 г., infoq.com
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c546a8b6c47dfe4d898fc508576c02ae__1686208020
URL1:https://arc.ask3.ru/arc/aa/c5/ae/c546a8b6c47dfe4d898fc508576c02ae.html
Заголовок, (Title) документа по адресу, URL1:
Transact-SQL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)