SQL-Server trigger update-Problem von über linked server

Ich würde gerne die update-Zeilen über linked server. Ich verknüpfte server auf meinen lokalen SQL-Server mit diese Unterricht.

Kann ich update-Zeilen über Query Analyzer mit folgenden code. Kein Fehler zurückgegeben, und die Zeilen aktualisieren, die auf den Linked Server erfolgreich.

UPDATE  [LinkedServer].[Database].[dbo].[Table]
SET A = 'A', B = 'B'
WHERE id = 1

Aber als ich einen update-trigger auf meinem Tisch auf meinem lokalen sql server-wie unten

ALTER TRIGGER [TriggerLocalServerTable]
   ON  dbo.[LocalServerTable]
    FOR UPDATE
AS 

DECLARE @A varchar(4)
DECLARE @B varchar(4)
DECLARE @id int

BEGIN
 SELECT
 @A = A,
 @B = B,
 @id = id
 FROM inserted

 UPDATE  [LinkedServer].[Database].[dbo].[Table]
 SET A = @A, B = @B
 WHERE id = @id      
END

Wenn der trigger ausgeführt wird, kehrt dieser Fehler wie unten

OLE DB-Anbieter "SQLNCLI" für den verlinkten
server "LinkedServer" meldete
"Die partner-Transaktions-manager hat
deaktiviert die Unterstützung für
remote - /Netzwerk-Transaktionen.". Msg
7391, Ebene 16, Status 2, Prozedur
TriggerLocalServerTable, Zeile 45
Der Vorgang konnte nicht ausgeführt werden
da OLE DB-Anbieter "SQLNCLI" für
linked server "LinkedServer" wurde nicht in der Lage
verteilte Transaktion beginnen.

Bewarb ich mich diese Anweisung an lokale server für die Lösung des Problems nichts geändert.

Mehr details;

  • wenn mein Verbindungsserver mit seinen
    remote-ip-Adresse.
  • Meinem lokalen server und Server Verbunden
    nicht in der gleichen Domäne.
  • Verknüpfte Server-Sicherheitseinstellungen "Werden
    mit diesem security context"
  • Lokalen server-version von Windows
    Server 2003 SP2, SQL-Server version 2005
    standart werden.
  • Verknüpften server OS-version ist 2008 und
    SQL-Server version 2008 (64 bit).
  • Ich konnte nicht auf remote-server
    mit RDP. ich kann den Zugriff nur von sql
    port (1433).
  • ich den Verbindungsserver "RPC" und "RPC
    Out" auf "True" von "Security Option".

Haben Sie eine Idee, um dieses Problem zu lösen.
Vielen Dank schon jetzt.

Edit:
Ich löste dieses Problem. Zunächst erstellte ich einen trigger für update auf [TriggerLocalServerTable]. Dieser trigger hat die Aufgabe das einfügen neuer Felder aktualisieren auf eine lokale Tabelle. Diese neue Tabelle mit aktualisiert für temp Daten. Dann habe ich eine Aufgabe erstellt, die läuft jede Stunde für update-fileds auf LinkedServer. Dieser job ruft Daten aus temp-Tabelle, aktualisieren Sie dann auf LinkedServer Tabelle die Felder.

Grüße, Kerberos.

InformationsquelleAutor Kerberos | 2010-11-13

Schreibe einen Kommentar