Symptomer
Overvej følgende scenarie:
-
Du har en sammenkædet server i Microsoft SQL Server 2008 R2.
-
Der er en tabel på den sammenkædede server, der har en kolonne af typen SMALLDATETIME.
-
Du kører en INSERT- eller INSERT INTO-sætning for at indsætte en post, der indeholder DATETIME-typedata, i tabellen.
I dette scenarie mislykkes sætningen. Desuden får du vist følgende fejlmeddelelse:
OLE DB-provideren "SQLNCLI10" for den sammenkædede server "LinkServerName " returnerede meddelelsen "Genererede fejl i forbindelse med OLE DB-handlingen i flere trin. Kontrollér hver ENKELT OLE DB-statusværdi, hvis den er tilgængelig. Der blev ikke gjort noget."Msg 7344, niveau 16, tilstand 1, linje 1 OLE DB-provideren "SQLNCLI10" for den sammenkædede server "LinkServerName" kunne ikke INSERT INTO tabel "TableName" på grund af kolonnen "ColumnName". Konverteringen mislykkedes, fordi dataværdien overløbede den datatype, der blev brugt af provideren.
Årsag
Dette problem opstår på grund af et tilknytningsproblem med datatypen i SQL Server.
Løsning
Oplysninger om samlet opdatering
SQL Server 2008 R2 Service Pack 2
Rettelsen til dette problem blev først udgivet i Samlet opdatering 3. Du kan finde flere oplysninger om, hvordan du får denne samlede opdateringspakke til SQL Server 2008 R2 Service Pack 2, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2754552 Samlet opdateringspakke 3 til SQL Server 2008 R2 Service Pack 2Note Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den tidligere SQL Server 2008 R2 Service Pack 2-rettelsesversion. Vi anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
2730301 De SQL Server 2008 R2-builds, der blev udgivet efter SQL Server 2008 R2 Service Pack 2 blev udgivet
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Løsning
Du kan løse problemet ved at bruge en af følgende metoder:
-
Kast data af typen DATETIME til typen SMALLDATETIME i sætningen.
-
Skift kolonnen SMALLDATETIME-type til TYPEN DATETIME på den sammenkædede server.