2013-05-01 3 views
0

nous avons deux serveurs un en local (Windows Server 2003) et un en Godaddy (Windows Server 2008), installé SQL Server 2005 à la fois les serveurs et les serveurs liés créés dans les deux serveurs.serveur lié dans le serveur SQL 2005

nous avons permis à déclenchement dans le serveur GoDaddy pour une sampletbl tableau, chaque fois que nous essayons d'insérer les données de base de données GoDaddy à base de données locale à l'aide de la gâchette activée, nous faisons face à l'erreur ci-dessous.

Le fournisseur OLE DB "SQLNCLI" pour le serveur lié "211_TEST" a renvoyé le message "Aucune transaction n'est active.".
Msg 7391, niveau 16, état 2, procédure 36to211, ligne 8
L'opération n'a pas pu être effectuée car le fournisseur OLE DB "SQLNCLI" pour le serveur lié "211_TEST" n'a pas pu démarrer une transaction distribuée.

code de déclenchement est la suivante:

set ANSI_NULLS ON 
set QUOTED_IDENTIFIER ON 
GO 
ALTER trigger [dbo].[36to211] on [dbo].[SampleTbl] 
FOR INSERT 
as 
Declare @a int; 
Declare @b int; 
Declare @c int; 
select @a=TETS_DET,@b=TEST_DET2,@c=TEST_DET3 from SampleTbl 
insert into [211_TEST].[MAPBULLION].[dbo].[TEST1] 
(TETS_DET,TEST_DET2,TEST_DET3) 
values 
(@a,@b,@c) 

ici [211_TEST] est le nom du serveur lié, MAPBULLION est la base de données dans le serveur local et TEST1 est le nom de la table dans le serveur local.

a vérifié les réglages MSDTC et ils sont aussi par le désir

S'il vous plaît fournir la solution.

C'est la requête que nous essayons d'exécuter pour insérer les données du serveur GoDaddy au serveur local:

insert into sampletbl (TETS_DET, TEST_DET2, TEST_DET3) 
VALUES ('5', '6', '7') 
+0

Cela va être très peu fiable (comme vous pouvez le voir). Vous devez utiliser votre déclencheur pour insérer dans une table de journal sur le serveur GoDaddy puis charger dans des lots rgaulr (disons toutes les cinq minutes) le copier. Vous pouvez également utiliser l'envoi ou la réplication de journaux, qui sont des moyens «natifs» de conserver la synchronisation des bases de données. Pour votre problème particulier, il est probable que l'insertion survenant sur la table se trouve dans une transaction. Elle tente donc d'inscrire le serveur lié dans les transactions, ce qui n'est pas possible. –

Répondre