Wie füge ich eine Tabelle aus einer entfernten gespeicherten Prozedur ein, ohne eine verteilte Transaktion zu erstellen?

7

Wie kann ich eine lokal gespeicherte Prozedur in eine lokale Tabelle einfügen, ohne eine verteilte Transaktion zu erstellen? Ich möchte eine gespeicherte Prozedur auf einem Remote-Server ausführen und die Ausgabe als Quelle für eine Einfügung in eine lokale Tabelle verwenden.

Guillermo Gutiérrez
quelle
Kannst du genauer sein? Sie möchten eine gespeicherte Prozedur auf einem Remote-Server ausführen und die Ausgabe als Quelle für eine Einfügung in eine lokale Tabelle verwenden, oder was?
JNK
Ja, das war's ...
Guillermo Gutiérrez

Antworten:

12

Ab SQL Server 2008 können Sie Werbeaktionen für den Verbindungsserver deaktivieren. Es befindet sich auf der Registerkarte Erweiterte Eigenschaften, oder Sie können es wie folgt skripten:

EXEC master.dbo.sp_serveroption 
    @server=N'YourLinkedServer', 
    @optname=N'remote proc transaction promotion', 
    @optvalue=N'false'


Für SQL Server 2005 können Sie einen OLE DB-Verbindungsserver hinzufügen. Auf diese Weise können Sie detaillierte Optionen in die Verbindungszeichenfolge eingeben.

Hier erfahren Sie, wie Sie einen solchen Verbindungsserver konfigurieren. Klicken Sie Server Objects, klicken Sie mit der rechten Maustaste Linked Serversund wählen Sie New Linked Server.... Konfigurieren Sie den Server wie folgt:

  • Tab "Allgemein":
    • Verbindungsserver: Geben Sie den Namen des Verbindungsservers ein
    • Überprüfen Sie die andere Datenquelle
    • Anbieter auswählen Microsoft OLE DB-Anbieter für SQL Server
    • Produktname: Geben Sie hier etwas ein, z. B. ZzzZZzzzz
    • Geben Sie die Provider-Zeichenfolge ein
      Data Source=<server or ip>,1433;Network Library=DBMSSOCN;Initial Catalog=<database name>;Enlist=false;
  • Registerkarte "Sicherheit":
    • Wählen Sie In diesem Sicherheitskontext erstellt
    • Geben Sie Benutzername und Passwort ein

Die Enlist=falsein der Verbindungszeichenfolge sollte verteilte Transaktionen verhindern.

Andomar
quelle