Insertion des résultats de la procédure stockée à partir du server lié

Est-il possible d'insert les résultats d'une procédure stockée distante dans une table temporaire? Par exemple

CREATE TABLE #test(id INT) INSERT INTO #test EXEC [linkedserver].remoteDB.dbo.tst DROP TABLE #test 

Où tst est une procédure stockée qui renvoie des ID.

Si je cours l'exécutif seul, ça fonctionne bien

 EXEC [linkedserver].remoteDB.dbo.tst 

Cependant, quand je le mets dans le cadre d'un insert, je reçois cette erreur

" Fournisseur OLE DB" SQLNCLI "pour le server lié" linkedserver "a renvoyé le message" Le gestionnaire de transactions partenaire a désactivé sa prise en charge pour les transactions distantes / réseau. "Msg 7391, Niveau 16, État 2, Ligne 2 L'opération n'a pas pu être effectuée Le fournisseur OLE DB "SQLNCLI" pour le server lié "linkedserver" n'a pas pu démarrer une transaction dissortingbuée. "

Une machine exécute SQL Server 2005 et l'autre 2008, tous deux exécutent le service «Dissortingbuted Transaction Coordinator».

Il me semble que le support pour les transactions à distance n'a pas été correctement activé.

Avez-vous essayé de suivre les instructions ici:

  • Le gestionnaire de transactions partenaire a désactivé sa prise en charge des transactions à distance / réseau

Je pense que la raison en est lorsque nous appelons EXEC seul, il n'est pas appelé dans une transaction, donc pas de problème. Quand nous appelons INSERT EXEC, cela s'appelle dans un txn, donc le server distant doit activer le support du réseau txn. Mais nous pouvons éviter cela avec ceci:

https://dba.stackexchange.com/questions/46541/how-to-insert-in-table-from-remote-stored-procedure-without-creating-a-dissortingbut