Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как обратиться к транзакции по ее имени.  [new]
Pavel39
Member

Откуда:
Сообщений: 2
Открываю два окна студии.

В первом пишу
BEGIN TRANSACTION T1;
SELECT @@SPID ,@@TRANCOUNT
Вижу 61, 1(отлично транзакция создана!)

Второе окно

SELECT @@SPID ,@@TRANCOUNT
Вижу 63, 0(Ага транзакции нет)

Пробую
ROLLBACK TRANSACTION T1;
Вижу (что вполне логично).
Запрос ROLLBACK TRANSACTION не имеет соответствующей инструкции BEGIN TRANSACTION.

Подскажите я могу завершить транзакцию по имени из другого сеанса(@@SPID)

Для чего мне это.
Суть простая, данные я пишу в базу порциями. И не всегда все хорошо(особенность данных) тогда мне надо данные удалить.
Понятно что можно сделать признак Ready и ID.
Но все же я хочу реализовать это транзакциями.
Скажем так,
Открывать сессию и писать в транзакчию с именем Т1 и потом если все хорошо комит Т1, если плохо комит ролбэк Т1.
4 июн 19, 16:55    [21901713]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Pavel39,

автор
Открывать сессию и писать в транзакчию с именем Т1 и потом если все хорошо комит Т1, если плохо комит ролбэк Т1.

что мешает делать это в try begin tran commit catch rollback?

ну и ключевое слово в мануале local
4 июн 19, 16:59    [21901718]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
msLex
Member

Откуда:
Сообщений: 7726
Pavel39
Открываю два окна студии.

В первом пишу
BEGIN TRANSACTION T1;
SELECT @@SPID ,@@TRANCOUNT
Вижу 61, 1(отлично транзакция создана!)

Второе окно

SELECT @@SPID ,@@TRANCOUNT
Вижу 63, 0(Ага транзакции нет)

Пробую
ROLLBACK TRANSACTION T1;
Вижу (что вполне логично).
Запрос ROLLBACK TRANSACTION не имеет соответствующей инструкции BEGIN TRANSACTION.

Подскажите я могу завершить транзакцию по имени из другого сеанса(@@SPID)

Для чего мне это.
Суть простая, данные я пишу в базу порциями. И не всегда все хорошо(особенность данных) тогда мне надо данные удалить.
Понятно что можно сделать признак Ready и ID.
Но все же я хочу реализовать это транзакциями.
Скажем так,
Открывать сессию и писать в транзакчию с именем Т1 и потом если все хорошо комит Т1, если плохо комит ролбэк Т1.


kill 61
4 июн 19, 17:07    [21901722]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
msLex
Pavel39
Открываю два окна студии.

В первом пишу
BEGIN TRANSACTION T1;
SELECT @@SPID ,@@TRANCOUNT
Вижу 61, 1(отлично транзакция создана!)

Второе окно

SELECT @@SPID ,@@TRANCOUNT
Вижу 63, 0(Ага транзакции нет)

Пробую
ROLLBACK TRANSACTION T1;
Вижу (что вполне логично).
Запрос ROLLBACK TRANSACTION не имеет соответствующей инструкции BEGIN TRANSACTION.

Подскажите я могу завершить транзакцию по имени из другого сеанса(@@SPID)

Для чего мне это.
Суть простая, данные я пишу в базу порциями. И не всегда все хорошо(особенность данных) тогда мне надо данные удалить.
Понятно что можно сделать признак Ready и ID.
Но все же я хочу реализовать это транзакциями.
Скажем так,
Открывать сессию и писать в транзакчию с именем Т1 и потом если все хорошо комит Т1, если плохо комит ролбэк Т1.


kill 61

а закомитить с другой сессии
live 61
4 июн 19, 17:13    [21901730]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7385
Pavel39,

два окна зачем?
4 июн 19, 17:24    [21901739]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36687
Владислав Колосов
Pavel39,

два окна зачем?
"Я архитектор, я так вижу" (c)
4 июн 19, 17:30    [21901749]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
invm
Member

Откуда: Москва
Сообщений: 9115
Pavel39
Подскажите я могу завершить транзакцию по имени из другого сеанса(@@SPID)
По имени никак.

Если осталось желание решать задачу именно таким извращенным способом, то читайте про sp_bindsession
4 июн 19, 19:14    [21901862]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
msLex
Member

Откуда:
Сообщений: 7726
invm
Pavel39
Подскажите я могу завершить транзакцию по имени из другого сеанса(@@SPID)
По имени никак.

Если осталось желание решать задачу именно таким извращенным способом, то читайте про sp_bindsession

Он помечен как depricated
4 июн 19, 19:17    [21901865]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
Pavel39
Member

Откуда:
Сообщений: 2
invm
читайте про sp_bindsession

Спасибо, судя по мсдн это именно то что надо.
автор
sp_bindsession использует токен привязки для привязки двух или более существующих сеансов клиента.

https://docs.microsoft.com/ru-ru/sql/relational-databases/system-stored-procedures/sp-bindsession-transact-sql?view=sql-server-2017



автор
Он помечен как depricated

Это конечно плохо :(

Подскажите его(sp_bindsession) вообще убирают или есть какие то новые способы и поэтому sp_bindsession заменят?
А то не понятно насколько depricated это плохо.
5 июн 19, 11:42    [21902334]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
вы лучше подумайте над архитектурой своего решения, неправильно это , что вы делаете с транзакциями
5 июн 19, 11:43    [21902336]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
invm
Member

Откуда: Москва
Сообщений: 9115
msLex
Он помечен как depricated
Это не страшно.
Думается ТС гораздо раньше откажется от своей идеи.
5 июн 19, 11:59    [21902359]     Ответить | Цитировать Сообщить модератору
 Re: Как обратиться к транзакции по ее имени.  [new]
msLex
Member

Откуда:
Сообщений: 7726
invm
msLex
Он помечен как depricated
Это не страшно.
Думается ТС гораздо раньше откажется от своей идеи.


Надеюсь, еще до реализации.
5 июн 19, 13:07    [21902448]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить