Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie verfügen über einen Verbindungsserver in Microsoft SQL Server 2008 R2.
-
Auf dem Verbindungsserver befindet sich eine Tabelle mit einer Spalte vom Typ SMALLDATETIME.
-
Sie führen eine INSERT- oder INSERT INTO-Anweisung aus, um einen Datensatz einzufügen, der Daten vom Typ DATETIME in die Tabelle enthält.
In diesem Szenario schlägt die Anweisung fehl. Außerdem wird folgende Fehlermeldung angezeigt:
Der OLE DB-Anbieter "SQLNCLI10" für den Verbindungsserver "LinkServerName " hat die Meldung "Fehler beim mehrstufigen OLE DB-Vorgang generiert. Überprüfen Sie die einzelnen OLE DB-status, sofern verfügbar. Es wurde keine Arbeit geleistet.".Msg 7344, Ebene 16, Status 1, Zeile 1Der OLE DB-Anbieter "SQLNCLI10" für den Verbindungsserver "LinkServerName" konnte aufgrund der Spalte "ColumnName" keine INSERT INTO-Tabelle "TableName" einfügen. Fehler bei der Konvertierung, weil der Datenwert den vom Anbieter verwendeten Datentyp überläuft.
Ursache
Dieses Problem tritt aufgrund eines Datentypzuordnungsproblems in SQL Server auf.
Lösung
Informationen zum kumulativen Update
SQL Server 2008 R2 Service Pack 2
Der Fix für dieses Problem wurde zuerst im kumulativen Update 3 veröffentlicht. Weitere Informationen zum Abrufen dieses kumulativen Updatepakets für SQL Server 2008 R2 Service Pack 2 finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
2754552 Kumulatives Updatepaket 3 für SQL Server 2008 R2 Service Pack 2Note Da die Builds kumulativ sind, enthält jedes neue Updaterelease alle Hotfixes und alle Sicherheitsfixes, die im vorherigen SQL Server 2008 R2 Service Pack 2-Fixrelease enthalten waren. Es wird empfohlen, dass Sie das neueste Updaterelease anwenden, das diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2730301 Die SQL Server 2008 R2-Builds, die nach SQL Server 2008 R2 Service Pack 2 veröffentlicht wurden
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Problemumgehung
Verwenden Sie eine der folgenden Methoden, um das Problem zu umgehen:
-
Wandeln Sie die Daten des DATETIME-Typs in den SMALLDATETIME-Typ in der -Anweisung um.
-
Ändern Sie die Spalte SMALLDATETIME type in den DATETIME-Typ auf dem Verbindungsserver.