La función ASCII devuelve resultados diferentes en tablas de base de datos publicador y suscriptor
Artículo
Se aplica a: SQL Server 2019
En este artículo se proporcionan soluciones alternativas para el problema que la ASCII función devuelve resultados diferentes en las tablas de base de datos publicador y suscriptor.
Síntomas
Considere el caso siguiente:
La replicación transaccional o de mezcla 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 definida 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 consultar el ejemplo siguiente:
Convierta la columna (col1) en la tabla de base de datos publisher:
SQL
SELECTid, col1, ASCII(col1) FROM PublisherTable
Convierta la columna (col1) en la tabla de base de datos suscriptor:
SQL
SELECTid, col1, ASCII(col1) FROM SubscriberTable
Solución alternativa
Para solucionar este problema con 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 ella y, a continuación, seleccione Pasos>de propiedades>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.
Obtenga información sobre cómo usar las variables de tabla optimizada para memoria en consultas entre bases de datos a fin de mover datos de una base de datos a tablas optimizadas para memoria de otra en SQL Server.
Controla si se devuelve un mensaje que muestra el recuento del número de filas afectadas por una instrucción o un procedimiento almacenado de Transact-SQL después del conjunto de resultados.
Referencia de Transact-SQL para la función STRING_SPLIT. Esta función con valores de tabla divide una cadena en subcadenas según un delimitador de caracteres.
Proporciona soluciones alternativas para el problema en el que se produce una disminución del rendimiento de SQL Server. Este problema se produce cuando se ejecuta la cláusula TOP, MAX o MIN de agregación en columnas.