열의 모든 데이터를 대문자로 만들려면 SQL 쿼리가 필요합니까?
어떤 아이디어?
답변
영구적 인:
UPDATE
MyTable
SET
MyColumn = UPPER(MyColumn)
일시적인:
SELECT
UPPER(MyColumn) AS MyColumn
FROM
MyTable
답변
당신이 원하는 경우 현재 대문자되지 않은 행에만 갱신 (대신 모든 행의), 당신은 사용의 차이를 확인해야 것 COLLATE
같은 :
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
데이터 정렬에 대해 조금
대소 문자 구분은 데이터 정렬 설정을 기반으로하며 일반적으로 기본적으로 대소 문자를 구분하지 않습니다.
데이터 정렬은 서버, 데이터베이스, 열 또는 쿼리 수준 에서 설정할 수 있습니다 .
-- 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
데이터 정렬 이름 은 문자열을 인코딩하고 읽는 방법을 지정합니다. 예를 들면 다음과 같습니다.
Latin1_General_CI_AS
→ 대소 문자 구분 안함Latin1_General_CS_AS
→ 대소 문자 구분