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 tipo SMALLDATETIME .
-
Ejecuta 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 "la operación OLE DB de varios pasos generó errores. Compruebe el valor de estado de la BD de OLE, si está disponible. No se ha realizado ningún trabajo. ". Msj 7344, nivel 16, estado 1, línea 1El proveedor OLE DB "SQLNCLI10" para el servidor vinculado "LinkServerName" no pudo insertar en la tabla "TableName" , por la columna "columnName". Error de conversión porque el valor de los datos ha desbordado el tipo de datos utilizado por el proveedor.
Causa
Este problema se produce debido a un problema de asignación de tipo de datos en SQL Server.
Resolución
Información sobre la actualización acumulativa
Service Pack 2 de SQL Server 2008 R2
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 2Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad que se incluían en la versión anterior de corrección de SQL Server 2008 R2 Service Pack 2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. 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 de que se publicó 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 métodos siguientes:
-
Convierta los datos de tipo DateTime en el tipo SMALLDATETIME de la instrucción.
-
Cambie la columna tipo SMALLDATETIME por el tipo DateTime en el servidor vinculado.