列のすべてのデータを大文字にする 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
→ 大文字と小文字を区別