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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Distributed Transaction Coordinator installiert auf Windows Server? Wenn Ihre Aktualisierung innerhalb einer Transaktion, es wird nicht funktionieren ohne Sie.
Sehen
link-text
InformationsquelleAutor Ondrej Vencovsky
Das problem dont liegt mit SQL-Server mit ODBC-Treiber.
Problem Gelöst 🙂
Es gibt drei DNS.. BENUTZER DNS -, System-DNS-und DNS-Datei whixch ich verwenden
InformationsquelleAutor Garima