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

Откуда:
Сообщений: 891
Здравствуйте.
Подскажите пожалуйста, как из всего списка активных транзакций получить имя БД, для которой эта транзакция выполняется?

т.е. делаю:
select * from sys.dm_tran_active_transactions

по [name] вижу, что в "где-то" выполняется бекап, но для какой БД не понимаю. Как выкупить, какая транзакция для какой БД?
23 сен 19, 09:32    [21976492]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
TaPaK
Member

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

смотрите sys.dm_exec_requests

транзакция не привязана к одной базе
ну или можно
dm_tran_active_transactions -> sys.dm_tran_session_transactions -> sysprocesses
23 сен 19, 09:42    [21976497]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
MAULER
Member

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

т.е. имя БД можно выцепить только из текста выполняющегося запроса, если она там указана? И больше нигде?
23 сен 19, 09:51    [21976502]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
MAULER
TaPaK,

т.е. имя БД можно выцепить только из текста выполняющегося запроса, если она там указана? И больше нигде?

кхм.... это как такой вывод случился?
23 сен 19, 09:52    [21976505]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
MAULER
Member

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

У меня не получается найти нормальной связки с какими либо системными таблицами, в которой бы через transaction_id можно было выйти на database_id или database_name.

Только эта: sys.dm_tran_active_transactions -> sys.dm_tran_session_transactions -> sys.dm_exec_sessions
23 сен 19, 09:57    [21976510]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
можете проще дёргать sp_who лишние поля что бы мозг не нагружали
или поднять sp_whoisactive
23 сен 19, 09:58    [21976514]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
MAULER
TaPaK,

У меня не получается найти нормальной связки с какими либо системными таблицами, в которой бы через transaction_id можно было выйти на database_id или database_name.

Только эта: sys.dm_tran_active_transactions -> sys.dm_tran_session_transactions -> sys.dm_exec_sessions


ну dbid можете искать
23 сен 19, 09:59    [21976517]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
MAULER
Member

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

да, только вот когда в sys.dm_tran_active_transactions висит какая то транзакция, то в sys.dm_tran_session_transactions
пусто, и джоин по transaction_id возвращает пустоту.
23 сен 19, 10:06    [21976527]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
TaPaK
Member

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

dm_tran_database_transactions
23 сен 19, 10:13    [21976540]     Ответить | Цитировать Сообщить модератору
 Re: Как по transaction_id получить имя_базы или id_базы?  [new]
MAULER
Member

Откуда:
Сообщений: 891
TaPaK
MAULER,

dm_tran_database_transactions

О! Благодарю! То что нужно!
23 сен 19, 10:20    [21976543]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить