Проблемы
Рассмотрим следующий сценарий.
-
У вас есть связанный сервер в Microsoft SQL Server 2008 R2.
-
На связанном сервере имеется таблица со столбцом типа SMALLDATETIME.
-
Выполните инструкцию INSERT или INSERT INTO, чтобы вставить запись, содержащую данные типа DATETIME, в таблицу.
В этом сценарии инструкция завершается ошибкой. Кроме того, появляется приведенное ниже сообщение об ошибке:
Поставщик OLE DB "SQLNCLI10" для связанного сервера LinkServerName вернул сообщение "Многошаговая операция OLE DB сгенерирована ошибками. Проверьте каждое значение состояния OLE DB, если доступно. Никакой работы не было сделано".Msg 7344, Level 16, State 1, Line 1. Поставщику OLE DB "SQLNCLI10" для связанного сервера LinkServerName не удалось вставить таблицу TableName из-за столбца ColumnName. Сбой преобразования, так как значение данных переполняет тип данных, используемый поставщиком.
Причина
Эта проблема возникает из-за проблемы с сопоставлением типов данных в SQL Server.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Исправление этой проблемы было впервые выпущено в накопительном обновлении 3. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 2 (SP2), щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2754552 Накопительный пакет обновления 3 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечать. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2 с пакетом обновления 2 (SP2). Рекомендуется применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Обходное решение
Чтобы обойти проблему, используйте один из следующих методов:
-
Приведите данные типа DATETIME к типу SMALLDATETIME в инструкции .
-
Измените столбец тип SMALLDATETIME на тип DATETIME на связанном сервере.