Announcement

Collapse
No announcement yet.

Linked Server SP

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Linked Server SP

    Hallo,

    ich probiere grad über einen linked server eine stored procedure auszuführen und das ergebnis in eine temporäre tabelle zu schreiben.
    ich kann die SP auch ausführen und das ergebnis anzeigen, aber sobald ich das ergebnis in eine tmp tabelle schreiben will bekomme ich den fehler:

    Der Vorgang konnte nicht ausgeführt werden, da der OLE DB-Anbieter "SQLNCLI" für den Verbindungsserver "123" keine verteilte Transaktion beginnen konnte.

    irgendwie ist mir das ganze unklar, wieso es einmal funktioniert und dann mit einer temp db nicht mehr....

    vielleicht kann mir von euch wer weiterhelfen, wäre super ;-)


    lg

    Code:
    CREATE TABLE tabelle .... 
    INSERT tabelle ... 
    
    EXEC [linked_server].[db]....

  • #2
    Hallo,

    da bei dieser Aktion ein Zugriff auf 2 SQL Server-Instanzen in einer Transaktion stattfindet, muss der DTC-Dienst (Distributed Transaction Coordinator) auf beiden Rechnern ausgeführt werden.

    Comment


    • #3
      danke, ich werds mal probieren...
      was ich aber nicht verstehe, wieso gehts wenn ich die SP normal aufrufe, aber wenn ich das erg. in ne temp. tabelle schreiben will nicht!?

      lg

      Comment


      • #4
        Weil die Verteile Transaktion für den Schreibvorgang in die Tabelle benötigt wird und nicht wenn nur gelesen wird.
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          hab jetzt den DTC eingeschalten. bekomme jetzt eine andere fehlermeldung...

          Msg 8509, Level 16, State 1, Line 1
          Fehler beim Importieren der Microsoft Distributed Transaction Coordinator-Transaktion (MS DTC): 0x8004d01f(XACT_E_TIP_CONNECT_FAILED).
          hat da wer ne ahnung?

          lg

          Comment


          • #6
            Hallo,

            beide Server sind selbstverständlich im gleichen Active Directory, oder?

            Comment


            • #7
              ja, sind sie!

              Comment


              • #8
                hab grad gesehen, dass ich das ergebnis von views und tabellen in temporäre tabellen schreiben kann. nur das ergebnis der stored proc noch immer nicht. hat das vielleicht mit irgendwelchen rechten zu tun, oder so?

                hat da von euch wer ne idee?
                vielen dank...

                lg

                Comment


                • #9
                  Doch, das geht schon.
                  Siehe mal in die Online-Hilfe (dafür ist sie da) unter "INSERT (Beschreibung)"

                  Da steht als Beispiel

                  --INSERT...EXECUTE procedure example
                  INSERT author_sales EXECUTE get_author_sales


                  Du musst nur entgegen SELECT ... INTO die (temporäre) Tabelle vorher genau mit den Felder+Typen der Rückgabewerte der SP definieren.
                  Olaf Helper

                  <Blog> <Xing>
                  * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                  Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                  Comment


                  • #10
                    das hab ich schon so gemacht, hat aber leider auch nicht funktioniert.

                    hab das jetzt alles umgeschrieben sodass ich es jetzt mit einem view importieren kann. ist zwar nicht die schönste lösung, aber es funktioniert so.

                    Comment


                    • #11
                      Originally posted by fake View Post
                      das hab ich schon so gemacht, hat aber leider auch nicht funktioniert.

                      hab das jetzt alles umgeschrieben sodass ich es jetzt mit einem view importieren kann. ist zwar nicht die schönste lösung, aber es funktioniert so.
                      hast Du es inzwieschen hinbekommen?
                      Ich habe jetzt das gleiche Problem, Verbindungsserver von SQL Server 2005 auf 2005
                      sobald ich eine sp von dem Verbindungsserver in einer sp aufrufe bekomme ich den Fehler:

                      Der Vorgang konnte nicht ausgeführt werden, da der OLE DB-Anbieter "SQLNCLI" für den Verbindungsserver "ABC" keine verteilte Transaktion beginnen konnte


                      beide Server sind selbstverständlich im gleichen Active Directory
                      beider DTC laufen.

                      Die sp selbst kann ich problemlos ausführen, nur nicht in eine andere sp, view geht

                      Hab zümlich viel ausprobiert, binn am ende

                      muss der SQL Server-Browser-Dienst daführ laufen?

                      Comment

                      Working...
                      X