Найти в Дзене
Merion Academy

No transaction is active: решение проблемы с SQL

Существует такая штука, как связанные сервера (Linked server). Эта фича помогает, когда нужно объединить несколько объектов, такие как БД, например. Но иногда данная связка сбоит следующим образом: OLE DB provider "SQLNCLI11" for linked server "MERION\SL2SQLEXPRESS" returned message "No transaction is active." Неприятно, да? Но решение есть. РЕШЕНИЕ Переходим в Component Services. Для его поиска можно воспользоваться поиском в Windows: Выбираем Component Services → Computers → My Computer → Distributed Transaction Coordinator → Local DTC. Кликаем правой кнопкой мыши на Local DTC и выбираем Properties: Прыгаем во вкладку Security и отмечаем опции, как показано на скриншоте ниже: НЕ ПОМОГЛО? ВОТ ЕЩЕ СПОСОБ Подключаем тяжелую артиллерию – сейчас мы будем удалять компонент msdtc и будем ставить его заново. А еще немного подкрутим регистр. Поехали – открываем консоль (cmd сервера) и даем следующую команду: msdtc -uninstall Огонь. Вызываем регистр: regedit.exe Теперь удаляем следующие ключи
Оглавление

Существует такая штука, как связанные сервера (Linked server). Эта фича помогает, когда нужно объединить несколько объектов, такие как БД, например. Но иногда данная связка сбоит следующим образом:

OLE DB provider "SQLNCLI11" for linked server "MERION\SL2SQLEXPRESS" returned message "No transaction is active."

Неприятно, да? Но решение есть.

РЕШЕНИЕ

Переходим в Component Services. Для его поиска можно воспользоваться поиском в Windows:

Выбираем Component ServicesComputersMy ComputerDistributed Transaction CoordinatorLocal DTC. Кликаем правой кнопкой мыши на Local DTC и выбираем Properties:

-2

Прыгаем во вкладку Security и отмечаем опции, как показано на скриншоте ниже:

-3

НЕ ПОМОГЛО? ВОТ ЕЩЕ СПОСОБ

Подключаем тяжелую артиллерию – сейчас мы будем удалять компонент msdtc и будем ставить его заново. А еще немного подкрутим регистр. Поехали – открываем консоль (cmd сервера) и даем следующую команду:

msdtc -uninstall
-4

Огонь. Вызываем регистр:

regedit.exe

Теперь удаляем следующие ключи в регистре:

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC;
  • HKEY_CLASSES_ROOT\CID;
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC;

А теперь заново установим msdtc:

msdtc –install
-5

После проделанных манипуляций, данная ошибка у нас пропала :)