Simptome
Luați în considerare următorul scenariu:
-
Aveți un server legat în Microsoft SQL Server 2008 R2.
-
Există un tabel pe serverul legat care are o coloană tip SMALLDATETIME .
-
Rulează o instrucțiune Insert sau Insert into pentru a insera o înregistrare care conține datele de tip DateTime în tabel.
În acest scenariu, instrucțiunea nu reușește. În plus, veți primi următorul mesaj de eroare:
Furnizor OLE DB "SQLNCLI10" pentru serverul legat "LinkServerName " a returnat mesajul "erorile generate de operațiunea OLE DB cu mai multe etape. Verificați fiecare valoare de stare OLE DB, dacă este disponibilă. Nu s-a efectuat nicio activitate. ". MSG 7344, nivel 16, stat 1, linie 1Fișierul OLE DB Provider "SQLNCLI10" pentru serverul legat "LinkServerName" nu s-a putut insera în tabelul "tablename" din cauza coloanei "ColumnName". Conversia nu a reușit, deoarece valoarea de date a inundat tipul de date utilizat de furnizor.
Cauză
Această problemă se produce din cauza unei probleme de mapare a tipului de date în SQL Server.
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2008 R2 Service Pack 2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 3. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2 Service Pack 2, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2754552 Pachetul de actualizare cumulativă 3 pentru SQL Server 2008 R2 Service Pack 2Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în versiunea anterioară SQL Server 2008 R2 Service Pack 2 remediată. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2730301 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2 Service Pack 2
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Soluție de evitare
Pentru a rezolva problema, utilizați una dintre următoarele metode:
-
Exprimate datele de tip DateTime la tipul de SMALLDATETIME în instrucțiune.
-
Modificați coloana tip SMALLDATETIME la tipul DateTime de pe serverul legat.