Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2019
Dieser Artikel enthält Problemumgehungen für das Problem, das von der ASCII
Funktion in den Tabellen der Publisher- und Abonnentendatenbank unterschiedliche Ergebnisse zurückgibt.
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
Sie verwenden die Transaktions- oder Zusammenführungsreplikation in SQL Server 2019.
Das anfängliche Schema und die Daten werden über das Replikations-Momentaufnahmen-Agent angewendet.
In der Publisher-Datenbank enthält eine Spalte, die als Zeichendatentyp definiert ist, einen NULL-Wert - ASCII-Zeichen 0
char(0)
.
Wenn Sie in diesem Szenario die ASCII
Funktion verwenden, um die Spalte in den Tabellen der Publisher- und Abonnentendatenbank zu konvertieren, werden unterschiedliche Ergebnisse zurückgegeben. Sie können sich auf das folgende Beispiel beziehen:
Konvertieren Sie die Spalte (
col1
) in der Publisher-Datenbanktabelle:SELECT id, col1, ASCII(col1) FROM PublisherTable
Konvertieren Sie die Spalte (
col1
) in der Tabelle der Abonnentendatenbank:SELECT id, col1, ASCII(col1) FROM SubscriberTable
Problemumgehung
Führen Sie die folgenden Schritte aus, um dieses Problem bei der Transaktionsreplikation zu umgehen:
Öffnen Sie SQL Server Management Studio, und stellen Sie eine Verbindung mit dem Server her, der als Distributor fungiert.
Erweitern Sie unter Objekt-Explorer SQL Server-Agent, und erweitern Sie dann Aufträge.
Wählen Sie den Snapshot-Agent-Auftrag für die betroffene Publikation aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie dann "Eigenschaftenschritt>>Schritt 2>Bearbeiten" aus.
Fügen Sie
-NativeBcpFileFormatVersion 100
im Fenster "Auftragsschritteigenschaften" am Ende des Befehls hinzu, und wählen Sie "OK" aus, um die Änderungen zu speichern.Wenden Sie den neuesten Microsoft OLE DB-Treiber an:
Wenn der Verteiler-Agent (oder Seriendruck-Agent) für Pushabonnements ausgeführt wird, wenden Sie ihn auf den Verteilerserver an.
Wenn der Verteilungs-Agent (oder Seriendruck-Agent) für Pullabonnements ausgeführt wird, wenden Sie ihn auf den Abonnentenserver an.
Benennen Sie die datei msoledbsql.dll im Ordner "C:\Programme\Microsoft SQL Server\150\COM" um:
Wenn es sich um ein Pushabonnement handelt, benennen Sie die Datei im Ordner auf dem Distributor-Server um.
Wenn es sich um ein Pullabonnement handelt, benennen Sie die Datei im Ordner auf dem Abonnentenserver um.
Kopieren Sie die msoledbsql.dll Datei aus dem Ordner "C:\Windows\System32\ ", und fügen Sie sie in den Ordner "C:\Programme\Microsoft SQL Server\150\COM " ein.
Führen Sie die folgenden Schritte aus, um dieses Problem bei der Seriendruckreplikation zu umgehen:
Wenden Sie SQL Server 2019 kumulatives Update 15 (CU15) oder eine höhere Version auf dem Distributor-Server an.
Führen Sie alle Schritte aus, die auf das Transaktionsreplikationsproblem angewendet werden.