Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка статуса именованной транзакции / 25 сообщений из 26, страница 1 из 2
04.06.2014, 11:56
    #38661169
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Привет всем! Предположим, есть процедура, в которой присутствуют именованные транзакции. Какие - то из них не закрываются. Проверять @@trancount не вариант. Можно ли как ни будь проверить статус именованной транзакции?

Транзакцию создаю так:

Код: sql
1.
BEGIN TRANSACTION maintran
...
Рейтинг: 0 / 0
04.06.2014, 12:01
    #38661180
begin tran maintran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
begin tran maintran

select *
from sys.dm_tran_active_transactions at
inner join sys.dm_tran_session_transactions st on at.transaction_id = st.transaction_id
where
at.name = 'maintran'
and st.session_id = @@spid

rollback
...
Рейтинг: 0 / 0
04.06.2014, 12:18
    #38661209
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Вот с радостью бы, но версия сервера 2000...
...
Рейтинг: 0 / 0
04.06.2014, 12:28
    #38661226
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
DBCC OPENTRAN
...
Рейтинг: 0 / 0
04.06.2014, 12:33
    #38661243
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Код: sql
1.
2.
3.
4.
begin tran MyTransaction;
select 1 as a into dbo.t;
dbcc opentran;
rollback;
...
Рейтинг: 0 / 0
04.06.2014, 13:33
    #38661371
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
А селектом? нельзя вывести?
...
Рейтинг: 0 / 0
04.06.2014, 13:42
    #38661386
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenaken, нутк INSERT..EXEC и из нее выбираете
...
Рейтинг: 0 / 0
04.06.2014, 14:11
    #38661439
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
авторПроверять @@trancount не вариант.
На основании...?
...
Рейтинг: 0 / 0
04.06.2014, 14:48
    #38661496
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Shakill,

При чём тут exec? Как селектом?
...
Рейтинг: 0 / 0
04.06.2014, 14:49
    #38661497
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Владислав Колосов,

На основании того, что есть ещё вложенные транзакции.
...
Рейтинг: 0 / 0
04.06.2014, 14:50
    #38661498
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenakenShakill,

При чём тут exec? Как селектом? WITH TABLERESULTS
...
Рейтинг: 0 / 0
04.06.2014, 14:52
    #38661502
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenakenНа основании того, что есть ещё вложенные транзакции.
Нет в mssql вложенных транзакций
Есть вложенные команды begin transaction.
Вложенаня команда commit не завершает вложенные begin transaction.
А rollback отменяет транзакцию до внешней команды begin transaction или точки сохранения.
...
Рейтинг: 0 / 0
04.06.2014, 14:53
    #38661503
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Благодарю всех! Скажите, а строка select 1 as a into dbo.t;
что делает?
...
Рейтинг: 0 / 0
04.06.2014, 14:54
    #38661505
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
begin tran MyTransaction1;
select 1 as a into dbo.t;
dbcc opentran;
	begin tran MyTransaction2;
	dbcc opentran;
	select 1 as a into dbo.t2;
	commit
rollback;
...
Рейтинг: 0 / 0
04.06.2014, 14:55
    #38661506
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenaken,
приводит к ошибке
...
Рейтинг: 0 / 0
04.06.2014, 14:56
    #38661510
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Maxxenakenenaken,
приводит к ошибке
плина думал одно написал другое
...
Рейтинг: 0 / 0
04.06.2014, 14:58
    #38661513
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Кроме того
dbcc opentran
Displays information about the oldest active transaction and the oldest distributed and nondistributed replicated transactions
и не факт, что ваша именованная транзакция будет самой старшей
...
Рейтинг: 0 / 0
04.06.2014, 15:01
    #38661519
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenakenВладислав Колосов,

На основании того, что есть ещё вложенные транзакции.

Это неверное представление. Имя транзакции вообще не имеет никакого значения, оно для программиста, а не для сервера. Вашу проблему, созданную кривым кодом, можно решить "костылём" в виде цикла выполнения COMMIT до тех пор, пока @@trancount>0 при том, что транзакция commitable. Либо делать ROLLBACK при @@trancount>0, т.к. в коде, скорее всего, произошла ошибка и он не дошел до COMMIT.
...
Рейтинг: 0 / 0
04.06.2014, 15:04
    #38661522
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Так указание имени в конструкции rollback tran name даст возможность прикончить именно транзакцию name, если есть другие?
...
Рейтинг: 0 / 0
04.06.2014, 15:05
    #38661526
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenakenТак указание имени в конструкции rollback tran name даст возможность прикончить именно транзакцию name, если есть другие?
Вы хелп читали ли ?

transaction_name
Is the name assigned to the transaction on BEGIN TRANSACTION. transaction_name must conform to the rules for identifiers, but only the first 32 characters of the transaction name are used. When nesting transactions, transaction_name must be the name from the outermost BEGIN TRANSACTION statement .
...
Рейтинг: 0 / 0
04.06.2014, 15:06
    #38661528
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
у меня каждая транзакция называется по разному.
...
Рейтинг: 0 / 0
04.06.2014, 15:07
    #38661530
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
...
Рейтинг: 0 / 0
04.06.2014, 15:11
    #38661539
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
enakenenakenТак указание имени в конструкции rollback tran name даст возможность прикончить именно транзакцию name, если есть другие?
Не так, это заблужение :) Откатить можно только до точек сохранения, если таковые были. Имена ничего не значат - они нужны, чтобы программист не запутался в транзакциях.
...
Рейтинг: 0 / 0
04.06.2014, 15:13
    #38661544
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Ах, да! Еще возможны операции восстановления резервных копий по именованным транзакциям.
...
Рейтинг: 0 / 0
04.06.2014, 15:13
    #38661545
enakenenaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка статуса именованной транзакции
Жесть, тогда вложенные транзакции не являются выходом. А можно прервать транзакцию?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка статуса именованной транзакции / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]