Síntomas
Imagine la siguiente situación:
-
Tiene un servidor vinculado en Microsoft SQL Server 2008 R2.
-
Hay una tabla en el servidor vinculado que tiene una columna de tipo SMALLDATETIME.
-
Ejecute una instrucción INSERT o INSERT INTO para insertar un registro que contiene datos de tipo DATETIME en la tabla.
En este escenario, se produce un error en la instrucción. Además, aparece un mensaje de error similar al siguiente:
El proveedor OLE DB "SQLNCLI10" para el servidor vinculado "LinkServerName " devolvió el mensaje "Se generaron errores en la operación OLE DB en varios pasos. Compruebe cada valor de estado de OLE DB, si está disponible. No se ha hecho ningún trabajo".Msg 7344, Nivel 16, Estado 1, Línea 1El proveedor OLE DB "SQLNCLI10" para el servidor vinculado "LinkServerName" no pudo INSERTAR EN la tabla "NombreDeTabla" debido a la columna "NombreColumna". Error de conversión porque el valor de datos desbordaba el tipo de datos que usaba el proveedor.
Causa
Este problema se produce debido a un problema de asignación de tipos de datos en SQL Server.
Solución
Información sobre la actualización acumulativa
SQL Server 2008 R2 Service Pack 2
La corrección para este problema se publicó por primera vez en la actualización acumulativa 3. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2754552 Paquete de actualización acumulativa 3 para SQL Server 2008 R2 Service Pack 2Note Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la corrección anterior de SQL Server 2008 R2 Service Pack 2. Le recomendamos que considere la posibilidad de aplicar la corrección más reciente que contiene esta revisión. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2730301 Las compilaciones de SQL Server 2008 R2 que se publicaron después del lanzamiento de SQL Server 2008 R2 Service Pack 2
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Solución alternativa
Para solucionar el problema, use uno de los siguientes métodos:
-
Convertir los datos de tipo DATETIME en el tipo SMALLDATETIME en la instrucción.
-
Cambie la columna tipo SMALLDATETIME por el tipo DATETIME en el servidor vinculado.