Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

ALTER TABLE ALTER COLUMN COLLATE

Termin Definicja
ALTER TABLE ALTER COLUMN COLLATE

Polecenie ALTER TABLE ALTER COLUMN COLLATE zmienia sortowanie znaków przypisane do konkretnej kolumny tabeli.

Rola klauzuli COLLATE przy zmianie kolumny

W składni Transact-SQL polecenie ALTER TABLE ... ALTER COLUMN ... COLLATE służy do przypisania innego sortowania znaków konkretnej kolumnie istniejącej tabeli w Microsoft SQL Server. Collation określa między innymi sposób porównywania i porządkowania tekstu, rozróżnianie wielkości liter, traktowanie znaków diakrytycznych oraz używany sposób kodowania znaków. Zmiana dotyczy kolumny, a nie pojedynczego zapytania wykonywanego tymczasowo.

Przykładowa składnia może wyglądać następująco: ALTER TABLE dbo.Klienci ALTER COLUMN Nazwisko nvarchar(150) COLLATE Polish_100_CI_AI NOT NULL;. W poleceniu trzeba ponownie podać typ danych, jego długość lub precyzję, a także właściwość NULL albo NOT NULL, jeśli kolumna ją posiada. Sama nazwa sortowania nie zastępuje definicji typu danych. Pominięcie istotnego elementu deklaracji może spowodować błąd albo doprowadzić do niezamierzonej zmiany właściwości kolumny.

Jak SQL Server porównuje tekst po zmianie sortowania

Nazwa sortowania składa się zwykle z nazwy lokalizacji lub reguł językowych oraz przyrostków opisujących sposób porównywania. W oznaczeniu CI występuje porównanie niewrażliwe na wielkość liter, czyli case-insensitive. Oznaczenie CS oznacza porównanie wrażliwe na wielkość liter. Przyrostek AI oznacza accent-insensitive, a więc brak rozróżniania części znaków diakrytycznych, natomiast AS oznacza accent-sensitive. Przykładowo collation Polish_100_CI_AI stosuje polskie reguły sortowania, nie rozróżnia wielkości liter i nie rozróżnia akcentów.

Collation wpływa na operatory porównania, sortowanie wyników, działanie operatora LIKE, grupowanie wartości oraz ocenę unikalności w indeksach i ograniczeniach. Jeżeli kolumna używana w indeksie unikanym zmieni sposób porównywania znaków, dwie wartości wcześniej uznawane za różne mogą stać się równoważne. W takiej sytuacji operacja może zakończyć się błędem, ponieważ po zmianie nie da się zachować istniejącego warunku unikalności. Zmiana sortowania może również ujawnić problemy w zapytaniach porównujących kolumny o różnych collation.

Warunki wykonania ALTER COLUMN COLLATE

Przed wykonaniem zmiany należy sprawdzić pełną definicję kolumny w katalogu systemowym SQL Server, w tym typ danych, długość, dopuszczalność wartości pustej, wartość domyślną, indeksy, klucze, ograniczenia oraz zależności w obiektach bazy. Pomocne są między innymi widoki sys.columns, sys.tables, sys.types i sys.index_columns. Collation dotyczy kolumn znakowych, takich jak char, varchar, nchar i nvarchar. Kolumny liczbowe, daty oraz typy binarne nie używają sortowania znaków w tym znaczeniu.

Operacja może wymagać zablokowania tabeli, ponieważ SQL Server musi zmienić metadane kolumny, a w określonych przypadkach także przepisać lub zweryfikować dane. Przy dużej tabeli czas blokady zależy od definicji obiektu, rozmiaru danych, indeksów i bieżącego obciążenia. Przed zmianą należy wykonać kopię zapasową, sprawdzić dostępne miejsce oraz przetestować polecenie na reprezentatywnej kopii bazy. Trzeba także zweryfikować, czy docelowe collation jest zainstalowane i poprawnie rozpoznawane przez konkretną instancję SQL Server.

Skutki diagnostyczne dla aplikacji korzystającej z bazy

Nieprawidłowo dobrane collation może powodować błędy typu „Cannot resolve the collation conflict”, gdy zapytanie porównuje tekst z kolumn pochodzących z różnych tabel, baz lub wyrażeń o odmiennych regułach. Doraźne użycie COLLATE w zapytaniu może rozwiązać pojedynczy konflikt, lecz nie zmienia definicji kolumny. Trwała zmiana przez ALTER COLUMN powinna wynikać z ustalonego modelu danych, a nie wyłącznie z usunięcia jednego komunikatu błędu.

Podczas diagnostyki laptopa lub komputera PC można sprawdzić, czy problem rzeczywiście wynika z działania SQL Server, konfiguracji połączenia i danych, czy z awarii systemu, dysku albo pamięci. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, dlatego w przypadku problemów ze stabilnością urządzenia analizuje objawy sprzętowe oraz środowisko uruchomieniowe w zakresie potrzebnym do ustalenia przyczyny.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę