Symptomy
Załóżmy, że w programie Microsoft SQL Server 2012 z dodatkiem Service Pack 1 (SP1) można użyć funkcji substring (wyrażenie, Start, length) w ramach aktualizacji skumulowanej 1 (CU1) lub nowszej wersji programu sql Server 2014. Jeśli długość wyrażenia jest większa niż 8000, a początek jest większe niż długość wyrażenia, występuje naruszenie zasad dostępu. 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ć.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server. Po zastosowaniu poprawki zwracana jest wartość wyrażenia o zerowej długości, gdy wartość początkowa jest większa niż liczba znaków w wyrażeniu Value.
Zbiorcza aktualizacja 1 dla programu SQL Server 2012 z dodatkiem SP2 /en-us/help/2976982
Zbiorcza aktualizacja 2 dla programu SQL Server 2014 /en-us/help/2967546
Zbiorcza aktualizacja 10 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2954099
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:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".