sqladm
Goto Top

Verbindungsserver MSSQL 2019 zu 2000

Hallo Zusammen,

ich möchte einen Verbindungsserver von einem SQL2019 zu einem 2000er erzeugen.
Mittels dieser Doku hat das auch einwandfrei geklappt:
https://learn.microsoft.com/de-de/archive/blogs/dbrowne/how-to-create-a- ...
Der Verbindungstest ist erfolgreich.
Führe ich jedoch einen Select über den Verbindungsserver aus:

SELECT *
  FROM [Name_Verbindungsserver].[Name_Datenbank].[dbo].[Name_Tabelle]
GO

Erhalte ich folgende Fehlermeldung:
"Meldung 8522, Ebene 16, Status 3, Zeile 1
Microsoft Distributed Transaction Coordinator (MS DTC) has stopped this transaction."

Die Verbindungsserver zu dem 2000er Server wurden bis SQL2016 genau so eingerichtet und haben funktioniert. Nun in 2019 nicht mehr.

Hat jemand einen Tipp?

Content-Key: 21708717389

Url: https://administrator.de/contentid/21708717389

Printed on: April 27, 2024 at 07:04 o'clock

Member: em-pie
em-pie Sep 20, 2023 at 10:08:05 (UTC)
Goto Top
Moin,

kannst du via SSMS durch den LinkedServer navigieren?

Und Fernab:
Die Verbindungsserver zu dem 2000er Server wurden bis SQL2016 genau so eingerichtet und haben funktioniert. Nun in 2019 nicht mehr.
Wie habt ihr das genau gemacht?
am 2016er SQL die Verbindungsparameter (Server Objects -> Linked Server -> rechtsklick auf [Name] -> Script Linked Server as -> Create to erzeugt, dann Copy & Paste und am 2019er (mit gesetztem Password) ausgeführt?
Welcher @provider wurde verwendet?
Member: SQLADM
SQLADM Sep 20, 2023 at 10:33:11 (UTC)
Goto Top
Ja, im SSMS sehe ich die gewünschte Datenbank sowie die dazugehörigen Tabellen über den Verbindungsserver.

Nein, ich habe den Verbindungsserver über das in der Doku genannte Skript erzeugt:
https://learn.microsoft.com/de-de/archive/blogs/dbrowne/how-to-create-a- ...

analog dieser Doku mit @provider=N'SQLNCLI10'
Member: Crusher79
Crusher79 Sep 20, 2023 at 11:25:49 (UTC)
Goto Top
Hallo,

https://learn.microsoft.com/de-de/archive/blogs/dbrowne/how-to-create-a- ...

So first download the newest SQL Native Client OleDB provider that still supports connecting to SQL 2000, SQLNCLI10 from here:

Microsoft® SQL Server® 2008 R2 SP2 Feature Pack

Naja beim direkten Importieren kommt man bei neuen SQL Servern an die Grenze, da die den alten Standard nicht mehr unterstützen.

Hier wurde unter 2012 auch auf das 2008R2 Feature Pack verwiesen.

Ggf. hilft das.
Member: SQLADM
SQLADM Sep 20, 2023 at 12:42:27 (UTC)
Goto Top
Danke, das habe ich beachtet: Das Service Pack wurde installiert, sonst scheitert bereits die Einrichtung.
Wie gesagt der Test des Verbindungsservers ist erfolgreich. Nur ein Select ist nicht ausführbar.
Member: em-pie
em-pie Sep 20, 2023 at 13:44:33 (UTC)
Goto Top
Ja, im SSMS sehe ich die gewünschte Datenbank sowie die dazugehörigen Tabellen über den Verbindungsserver.

Kannst du denn dann bei Rechtsklick auf einer Tabelle erfolgreich auswählen „ersten 1000 Zeilen anzeigen“?
Der haut dir dann ja nen Query um die Ohren…
Member: ukulele-7
ukulele-7 Sep 20, 2023 updated at 14:22:00 (UTC)
Goto Top
Eventuell macht es Sinn das mit OPENROWSET (oder einer der ähnlichen Methoden) abzufragen, auch wenn es ein linked server ist. Allerdings müssen dafür auf dem SQL 2000 ggf. noch Einstellungen gesetzt werden.
https://www.sqlshack.com/querying-remote-data-sources-in-sql-server/
Member: SQLADM
SQLADM Sep 21, 2023 at 06:44:57 (UTC)
Goto Top
Zitat von @em-pie:

Ja, im SSMS sehe ich die gewünschte Datenbank sowie die dazugehörigen Tabellen über den Verbindungsserver.

Kannst du denn dann bei Rechtsklick auf einer Tabelle erfolgreich auswählen „ersten 1000 Zeilen anzeigen“?
Der haut dir dann ja nen Query um die Ohren…

Genau daraus resultiert o. g. Select-Abfrage. Ich kann draufklicken, erhalte aber die Fehlermeldung.
Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Sep 25, 2023 at 10:42:12 (UTC)
Goto Top
mal am SQL Server 2000 mit dem SQL Server Profiler nachschauen, was da ankommt.

Ansonsten wäre es ja nicht zu verwegen, um mal von einem Kompatibilitätsbruch zu reden... der SQL Server 2019 verwendet als erste Version nativ OLEDB18, wenn er als Client agiert, kann aber auch alle ältren Sachen noch die Windows selber in der ODBC Treibersammlung auflistet ... aber vermutlich nicht ohne Modifikationen auf der anfragenden Seite.