Potrzebuję zapytania SQL, aby wszystkie dane były w kolumnie WIELKIE LITERY?
Jakieś pomysły?
Odpowiedzi:
Jeśli chcesz aktualizować tylko wiersze, które nie są obecnie pisane wielkimi literami (zamiast wszystkich wierszy), musisz zidentyfikować różnicę, używając w COLLATE
ten sposób:
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
Czułość wielkości liter jest oparta na ustawieniach sortowania i zazwyczaj domyślnie nie rozróżnia wielkości liter.
Sortowanie można ustawić na poziomie serwera, bazy danych, kolumny lub zapytania :
-- Server
SELECT SERVERPROPERTY('COLLATION')
-- Database
SELECT name, collation_name FROM sys.databases
-- Column
SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL
Nazwy sortowania określają, w jaki sposób ciąg powinien być kodowany i odczytywany, na przykład:
Latin1_General_CI_AS
→ Bez rozróżniania wielkości literLatin1_General_CS_AS
→ Rozróżniana wielkość liter