De functie ASCII retourneert verschillende resultaten in de databasetabellen Publisher en Subscriber
Van toepassing op: SQL Server 2019
Dit artikel bevat tijdelijke oplossingen voor het probleem dat de ASCII
functie verschillende resultaten retourneert in de databasetabellen Publisher en Subscriber.
Symptomen
Bekijk het volgende scenario:
U gebruikt transactionele replicatie of samenvoeging in SQL Server 2019.
Het eerste schema en de gegevens worden toegepast via de replicatiemomentopnameagent.
In de Publisher-database bevat een kolom die is gedefinieerd als gegevenstype teken een NULL-waarde - ASCII-teken 0
char(0)
.
In dit scenario worden verschillende resultaten geretourneerd wanneer u de ASCII
functie gebruikt om de kolom in de databasetabellen Publisher en Subscriber te converteren. U kunt het volgende voorbeeld raadplegen:
Converteer de kolom (
col1
) in de Publisher-databasetabel:SELECT id, col1, ASCII(col1) FROM PublisherTable
Converteer de kolom (
col1
) in de databasetabel Abonnee:SELECT id, col1, ASCII(col1) FROM SubscriberTable
Tijdelijke oplossing
Volg deze stappen om dit probleem voor transactionele replicatie te omzeilen:
Open SQL Server Management Studio en maak verbinding met de server die fungeert als distributeur.
Vouw onder Objectverkenner SQL Server Agent uit en vouw vervolgens Taken uit.
Selecteer de agenttaak voor de momentopname voor de betreffende publicatie, klik er met de rechtermuisknop op en selecteer vervolgens Eigenschappenstappen>>stap 2>bewerken.
Voeg in het venster Eigenschappen van taakstap toe aan het einde van de opdracht en selecteer OK om de wijzigingen op te
-NativeBcpFileFormatVersion 100
slaan.Pas het meest recente Microsoft OLE DB-stuurprogramma toe:
Als de distributieagent (of samenvoegagent) wordt uitgevoerd voor pushabonnementen, past u deze toe op de distributeurserver.
Als de distributieagent (of samenvoegagent) wordt uitgevoerd voor pull-abonnementen, past u deze toe op de abonneeserver.
Wijzig de naam van het bestand msoledbsql.dll in de map C:\Program Files\Microsoft SQL Server\150\COM:
Als het een push-abonnement is, wijzigt u de naam van het bestand in de map op de Distributor-server.
Als het een pull-abonnement is, wijzigt u de naam van het bestand in de map op de abonneeserver.
Kopieer het msoledbsql.dll bestand uit de map C:\Windows\System32\ en plak het in de map C:\Program Files\Microsoft SQL Server\150\COM .
Volg deze stappen om dit probleem voor samenvoegingsreplicatie te omzeilen:
Pas SQL Server 2019 Cumulatieve update 15 (CU15) of een latere versie toe op de Distributor-server.
Volg alle stappen die worden toegepast op het probleem met transactionele replicatie.