Sintomas
Considere o seguinte cenário:
-
Tem um servidor ligado no Microsoft SQL Server 2008 R2.
-
Existe uma tabela no servidor ligado que tem uma coluna do tipo SMALLDATETIME.
-
Execute uma declaração DE INSERT ou INSERT INTO para inserir um registo que contenha dados do tipo DATETIME na tabela.
Neste cenário, a declaração falha. Além disso, recebe a seguinte mensagem de erro:
Ole DB provider "SQLNCLI10" para servidor ligado "LinkServerName " mensagem devolvida "Operação DB de múltiplos passos gerou erros. Verifique cada valor de estado do OLE DB, se disponível. Nenhum trabalho foi feito." Msg 7344, Nível 16, Estado 1, Linha 1O fornecedor OLE DB "SQLNCLI10" para servidor ligado "LinkServerName" não pôde inserir na tabela "TableName" por causa da coluna "ColumnName". A conversão falhou porque o valor dos dados transbordou o tipo de dados utilizado pelo fornecedor.
Causa
Este problema ocorre devido a um problema de mapeamento do tipo de dados no SQL Server.
Resolução
Informação de atualização cumulativa
Sql Server 2008 R2 Service Pack 2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2 Service Pack 2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2754552 Pacote de atualização cumulativo 3 para SQL Server 2008 R2 Service Pack 2Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção do SqL Server 2008 R2 Service Pack 2. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2730301 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 2
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Solução
Para contornar a questão, utilize um dos seguintes métodos:
-
Lançar os dados do tipo DATATIME para o tipo SMALLDATETIME na declaração.
-
Altere a coluna do tipo SMALLDATETIME para o tipo DATETIME no servidor ligado.