У меня есть триггер, который вызывает хранимую процедуру. В хранимой процедуре есть оператор INSERT на связанном сервере, который дает мне:
The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "MyServer" was unable to begin a distributed transaction.
Но когда я заменяю значения переменных в строке sql фактическими значениями и запускаю точно такой же оператор вручную (т.е. не через триггер), он вставляет запись.
ДКН включен. Мои настройки DTC неверны?
Выполняется запрос:
INSERT INTO [MyServer].WorkForce.dbo.Faults (FaultID, CreatedOn, FaultStart, Reason, Description, TaskID)
SELECT @NewFaultID, GETDATE(), T.CreatedOn, ISNULL(I.Reason, 'Unknown'), WFR.Description,
T.TaskID
FROM Inserted I
INNER JOIN Tasks T ON I.TaskID = T.TaskID
INNER JOIN FaultReasons WFR ON I.Reason = WFR.Reason
WHERE T.TaskID = I.TaskID
Я использую SQL Server 2012