Problembeschreibung
Gehen Sie davon aus, dass Sie Microsoft SQL Server 2014 verwenden. Wenn Sie versuchen, datepart (Weekday) in einer systemeigenen kompilierten gespeicherten Prozedur zu verwenden, besteht eine Zugriffsverletzung, und die Verbindung wird beendet. Darüber hinaus erhalten Sie die folgende Fehlermeldung:
Für den aktuellen Befehl ist ein schwerwiegender Fehler aufgetreten. Die Ergebnisse, falls vorhanden, sollten verworfen werden.
Ursache
Das Problem tritt auf, weil ein Fehler in SQL Server 2014. die Verwendung von datepart mit einem Char-Argument führt zu einer impliziten Konvertierung in DateTimeOffset. Die systemeigene gespeicherte Prozedur unterstützt keine DateTimeOffset.
Fehlerbehebung
Nachdem der Hotfix angewendet wurde, führt SQL Server eine Änderung durch, um eine neue Logik zum Konvertieren des Char-Arguments in datetime2 für die systemeigene gespeicherte Prozedur und DateTimeOffset für die reguläre gespeicherte Prozedur und die Konstante Faltung einzuführen. Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 /en-us/help/2931693
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um das Problem zu umgehen, konvertieren Sie explizit in einen unterstützten DateTime -Typ.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.