Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 insert select в одной транзакции  [new]
СуперНУБ
Guest
Добрый день!
Прошу помощи!
В SQL по умолчанию каждый запрос представляет собой одну атомарную транзакцию, которая либо выполнится либо откатится.
Если я делаю запрос

insert into BBB (Name) 
select Name from AAA


Может ли получится так, что при выполнении этого запроса, в случае ошибки, часть данных будет скопирована, а часть нет?
То есть, выполняется ли этот запрос в виде одной транзакции? Если не выполняется то, как тут правильно реализовать транзакцию?

Может так?:

CREATE PROCEDURE [dbo].[xxx]
AS
BEGIN

BEGIN TRAN

insert into 
BBB (name) 
select Name from AAA

COMMIT TRAN

END
28 ноя 14, 11:17    [16917878]     Ответить | Цитировать Сообщить модератору
 Re: insert select в одной транзакции  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
СуперНУБ
Может ли получится так, что при выполнении этого запроса, в случае ошибки, часть данных будет скопирована, а часть нет?
Нет. Не может.
28 ноя 14, 11:24    [16917941]     Ответить | Цитировать Сообщить модератору
 Re: insert select в одной транзакции  [new]
СуперНУБ
Guest
iap,

Спасибо!
28 ноя 14, 11:41    [16918048]     Ответить | Цитировать Сообщить модератору
 Re: insert select в одной транзакции  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Q:
СуперНУБ
Может ли получится так, что при выполнении этого запроса, в случае ошибки, часть данных будет скопирована, а часть нет?

A:
СуперНУБ
В SQL по умолчанию каждый запрос представляет собой одну атомарную транзакцию, которая либо выполнится либо откатится.

Q:
СуперНУБ
То есть, выполняется ли этот запрос в виде одной транзакции?

A:
СуперНУБ
В SQL по умолчанию каждый запрос представляет собой одну атомарную транзакцию, которая либо выполнится либо откатится.
28 ноя 14, 23:13    [16922610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить