Symptomy
Załóżmy, że korzystasz z programu Microsoft SQL Server 2014. Podczas próby użycia parametru DatePart (dzień. tyg) w procedurze składowanej skompilowanej w sposób macierzysty występuje naruszenie zasad dostępu i połączenie zostało zakończone. Ponadto jest wyświetlany następujący komunikat o błędzie:
W bieżącym poleceniu wystąpił poważny błąd. Ewentualne wyniki należy odrzucić.
Przyczyna
Ten problem występuje z powodu wady programu SQL Server 2014. użycie funkcji DatePart z argumentem char wprowadza niejawną konwersję na wartość DateTimeOffset. Macierzysta procedura składowana nie obsługuje DateTimeOffset.
Rozwiązanie
Po zastosowaniu poprawki program SQL Server wprowadzi zmianę w celu wprowadzenia nowej logiki w celu przekonwertowania argumentu char na datetime2 na natywną procedurę przechowywaną i wartość DateTimeOffset dla zwykłej procedury składowanej i stałej składania. Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 1 dla programu SQL Server 2014 /en-us/help/2931693
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Obejście
Aby obejść ten problem, jawnie przekonwertuj na obsługiwany typ DateTime .
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".