La función ASCII devuelve resultados diferentes en tablas de base de datos de publicador y suscriptor
Se aplica a: SQL Server 2019
En este artículo se proporcionan soluciones alternativas para el problema de que la ASCII
función devuelve resultados diferentes en las tablas de base de datos publicador y suscriptor.
Síntomas
Imagine la siguiente situación:
La replicación transaccional o de combinación se usa en SQL Server 2019.
El esquema inicial y los datos se aplican a través del Agente de instantáneas de replicación.
En la base de datos del publicador, una columna que se define como tipo de datos de caracteres incluye un valor NULL: carácter ASCII 0
char(0)
.
En este escenario, cuando se usa la ASCII
función para convertir la columna en las tablas de base de datos publisher y subscriber, se devuelven resultados diferentes. Puede hacer referencia al ejemplo siguiente:
Convierta la columna (
col1
) en la tabla de base de datos publisher:SELECT id, col1, ASCII(col1) FROM PublisherTable
Convierta la columna (
col1
) en la tabla de base de datos del suscriptor:SELECT id, col1, ASCII(col1) FROM SubscriberTable
Solución alternativa
Para solucionar este problema para la replicación transaccional, siga estos pasos:
Abra SQL Server Management Studio y conéctese al servidor que actúa como distribuidor.
En Explorador de objetos, expanda Agente SQL Server y, a continuación, expanda Trabajos.
Seleccione el trabajo del agente de instantáneas para la publicación afectada, haga clic con el botón derecho en él y, a continuación, seleccione Propiedades>Pasos>paso 2>Editar.
En la ventana Propiedades del paso de trabajo , agregue
-NativeBcpFileFormatVersion 100
al final del comando y seleccione Aceptar para guardar los cambios.Aplique el controlador OLE DB de Microsoft más reciente:
Si el agente de distribución (o el agente de mezcla) se ejecuta para las suscripciones push, aplíquelo en el servidor del distribuidor.
Si el agente de distribución (o el agente de mezcla) se ejecuta para las suscripciones de extracción, aplíquelo en el servidor del suscriptor.
Cambie el nombre del archivo msoledbsql.dll en la carpeta C:\Archivos de programa\Microsoft SQL Server\150\COM:
Si se trata de una suscripción de inserción, cambie el nombre del archivo en la carpeta del servidor del distribuidor.
Si se trata de una suscripción de extracción, cambie el nombre del archivo en la carpeta del servidor del suscriptor.
Copie el archivo msoledbsql.dll de la carpeta C:\Windows\System32\ y péguelo en la carpeta C:\Archivos de programa\Microsoft SQL Server\150\COM.
Para solucionar este problema para la replicación de mezcla, siga estos pasos:
Aplique SQL Server actualización acumulativa 15 (CU15) de 2019 o una versión posterior en el servidor del distribuidor.
Siga todos los pasos que se aplican al problema de replicación transaccional.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de