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