Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 В чем причина такого поведения SET IMPLICIT_TRANSACTIONS ON  [new]
ВЧемПричина
Guest
Имеем скрипт:

CREATE TABLE t1 (a int PRIMARY KEY)
GO
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET IMPLICIT_TRANSACTIONS ON
GO
SET XACT_ABORT ON --OFF
GO

INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2) /* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GO

SELECT * FROM t2
GO

DROP TABLE t2
DROP TABLE t1
GO


Интересно число записей в таблице t2- ожидаемо их 0

меняем в этом же скрипте значение SET IMPLICIT_TRANSACTIONS на OFF
и при первом же выполнении получаем 0 записей в таблице t2, при втором уже 1
Спрашивается... ПОЧЕМУ???
17 июл 13, 14:27    [14578241]     Ответить | Цитировать Сообщить модератору
 Re: В чем причина такого поведения SET IMPLICIT_TRANSACTIONS ON  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ВЧемПричина,

Добавьте в конец вашего скрипта "SELECT @@TRANCOUNT" и ещё раз позапускайте, думаю, всё станет ясно.
17 июл 13, 14:44    [14578357]     Ответить | Цитировать Сообщить модератору
 Re: В чем причина такого поведения SET IMPLICIT_TRANSACTIONS ON  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
ВЧемПричина, а что делает SET IMPLICIT_TRANSACTIONS по вашему?

Админам: Прикройте этот трольный топик.
17 июл 13, 14:45    [14578368]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить