Jelenségek
Vegye figyelembe a következő forgatókönyvet:
-
Csatolt kiszolgálóval rendelkezik a Microsoft SQL Server 2008 R2-ben.
-
Van egy tábla a csatolt kiszolgálón, amely egy SMALLDATETIME típusú oszloppal rendelkezik.
-
Egy INSERT vagy INSERT INTO utasítás futtatásával beszúrhat egy DATETIME típusú adatokat tartalmazó rekordot a táblába.
Ebben a forgatókönyvben az utasítás meghiúsul. Ezenkívül egy, az alábbihoz hasonló hibaüzenet is megjelenik:
A "LinkServerName " csatolt kiszolgáló "SQLNCLI10" OLE DB-szolgáltató "Többlépéses OLE DB-művelet által generált hibák" üzenetet adott vissza. Ellenőrizze az egyes OLE DB-állapotértékeket, ha elérhetők. Nem végeztek munkát."Msg 7344, Level 16, State 1, Line 1The OLE DB provider "SQLNCLI10" for linked server "LinkServerName" nem tudta INSERT INTO táblába "TableName" miatt oszlop "ColumnName". Az átalakítás nem sikerült, mert az adatérték túlcsordult a szolgáltató által használt adattípuson.
A probléma oka
Ez a probléma a SQL Server adattípus-leképezési hibája miatt fordul elő.
Megoldás
Kumulatív frissítési információk
SQL Server 2008 R2 Service Pack 2
A probléma javítása először a 3. kumulatív frissítésben jelent meg. A SQL Server 2008 R2 Service Pack 2 kumulatív frissítési csomagjának beszerzéséről a Microsoft Tudásbázis következő cikkében tájékozódhat:
2754552 3. összegző frissítési csomag SQL Server 2008 R2 Service Pack 2Note Mivel a buildek összegzőek, minden új javításkiadás tartalmazza az összes gyorsjavítást és az előző SQL Server 2008 R2 Service Pack 2 javítás kiadásában szereplő összes biztonsági javítást. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb javítás kiadásának alkalmazását. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):
2730301 A SQL Server 2008 R2 Service Pack 2 kiadását követően kiadott SQL Server 2008 R2 buildek
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.
Kerülő megoldás
A probléma megkerüléséhez használja az alábbi módszerek egyikét:
-
Adja át a DATETIME típusadatokat a utasítás SMALLDATETIME típusára.
-
Módosítsa a SMALLDATETIME típus oszlopot a csatolt kiszolgálón található DATETIME típusra.