Транзакции в SQL Server
От: K Sergey  
Дата: 17.05.06 08:03
Оценка:
Привет всем!

Кто-нибудь знает можно ли получить идентификатор транзакции в контексте которой происходят текущие изменения БД?
Re: Транзакции в SQL Server
От: Merle Австрия http://rsdn.ru
Дата: 17.05.06 09:42
Оценка:
Здравствуйте, K Sergey, Вы писали:

KS>Кто-нибудь знает можно ли получить идентификатор транзакции в контексте которой происходят текущие изменения БД?

Кратко, нет.
Можно конечно придумать изварщенный способ но вряд ли онбудет иметь практическую пользу... А зачем?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[2]: Транзакции в SQL Server
От: K Sergey  
Дата: 17.05.06 10:27
Оценка:
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, K Sergey, Вы писали:


KS>>Кто-нибудь знает можно ли получить идентификатор транзакции в контексте которой происходят текущие изменения БД?

M>Кратко, нет.
M>Можно конечно придумать изварщенный способ но вряд ли онбудет иметь практическую пользу... А зачем?

С помощью триггеров организовано заполнение журнала изменений. Эти изменения потом предполагается накатывать на другой экземпляр БД, причем выборочно: что-то да, что-то нет, поэтому хочется знать какие измнения призошли в рамках одной транзакции и значит должны быть накачены только вместе.
Может есть более простое решение?
Re[3]: Транзакции в SQL Server
От: Merle Австрия http://rsdn.ru
Дата: 17.05.06 11:21
Оценка:
Здравствуйте, K Sergey, Вы писали:

KS>Может есть более простое решение?

Например, можно использовать стандартную репликацию или, если стандартная по каким-то причинам не подходит, придумать свою систему пометки принадлежности изменений одной транзакции...
Или вообще отказаться от транзакционной репликации и продумать просто передачу измененных данных, а не всей последовательности изменений, это как правило проще...
... << RSDN@Home 1.2.0 alpha rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re: Транзакции в SQL Server
От: Alexandr Sulimov Украина www.ase.com.ua
Дата: 17.05.06 11:53
Оценка: 30 (1) +1
Здравствуйте, K Sergey, Вы писали:

KS>Привет всем!


KS>Кто-нибудь знает можно ли получить идентификатор транзакции в контексте которой происходят текущие изменения БД?


Получить код транзакции
DECLARE @bind_token varchar(255)
EXECUTE sp_getbindtoken @bind_token OUTPUT
SELECT @bind_token AS Token


Подключится к транзакции
sp_bindsession xxx
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[2]: Транзакции в SQL Server
От: Merle Австрия http://rsdn.ru
Дата: 17.05.06 13:19
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Получить код транзакции

Да, действительно, про getbindtoken я забыл совсем...
... << RSDN@Home 1.2.0 alpha rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[2]: Транзакции в SQL Server
От: K Sergey  
Дата: 17.05.06 13:28
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Здравствуйте, K Sergey, Вы писали:


KS>>Привет всем!


KS>>Кто-нибудь знает можно ли получить идентификатор транзакции в контексте которой происходят текущие изменения БД?


AS>Получить код транзакции

AS>
AS>DECLARE @bind_token varchar(255)
AS>EXECUTE sp_getbindtoken @bind_token OUTPUT
AS>SELECT @bind_token AS Token
AS>


AS>Подключится к транзакции

AS>
AS>sp_bindsession xxx
AS>


Спасибо Alexandr, пробую.
Re[2]: Транзакции в SQL Server
От: K Sergey  
Дата: 18.05.06 12:20
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Здравствуйте, K Sergey, Вы писали:


KS>>Привет всем!


KS>>Кто-нибудь знает можно ли получить идентификатор транзакции в контексте которой происходят текущие изменения БД?


AS>Получить код транзакции

AS>
AS>DECLARE @bind_token varchar(255)
AS>EXECUTE sp_getbindtoken @bind_token OUTPUT
AS>SELECT @bind_token AS Token
AS>


AS>Подключится к транзакции

AS>
AS>sp_bindsession xxx
AS>


Удалось получить id транзакции. Но для каскадно выполняемых операций мы получаем разные id. Например если из приложения вызывается удаление записи, то эта операция а также операции выполняемые триггером на удалении выполняются в пределах одной транзакции. А вложенные вызовы триггеров выполняются уже в транзакциях с другим id. Как узнать что эти транзакции связаны? Коммитятся и откатываются они только вместе — проверено.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.