SQL 2005または2008で列の大文字と小文字を区別する方法
-
03-07-2019 - |
質問
列に基づいてデフォルトの照合を変更することは可能ですか? 1列の大文字と小文字を区別したいが、他のすべては区別したくない
解決
ALTER TABLE ALTER COLUMN
を使用すると、単一の列の照合順序を変更できます。
alter table Foo alter column Bar ntext collate Latin1_General_CS_AS
(照合が間違っている可能性があります)
他のヒント
SQL Serverについては特に知りませんが、一般的に受け入れられているDBMSの慣習(互換性のため)は次のいずれかです。
- 挿入トリガーと更新トリガーをテーブルに置き、必要な場合に格納されるようにします。
- 生成された列を使用して、必要に応じて列の別のコピーを保存します。
SQL Serverでそれを行うより速い方法があるかもしれませんが、ワークロードをSELECTステートメントにプッシュするソリューションに注意する必要があります-それらはうまく拡張できません。ほとんどの場合、これは挿入と更新の一部として行う方が良いのは、データが変更されるのはそれだけだからです。そうすることで余分な作業負荷を最小限に抑えることができます。
あなたの質問への答えはイエスです。既に上記でアントンゴゴレフによって述べられています。
追加情報:
バージョンに基づいて、SQL Serverでサポートされている照合順序のリストを見つける方法を次に示します。
select name,
COLLATIONPROPERTY(name, 'CodePage') as Code_Page,
description
from sys.fn_HelpCollations()
所属していません StackOverflow