ユーザー名を表す Microsoft SQL データベースに VARCHAR(30) 列があります。特定の範囲の文字のみを使用できるようにする CHECK 制約を追加したいと思います。具体的には、az、AZ、アンダースコア、およびダッシュです。どのような表現を使用する必要がありますか?
2116 次
2 に答える
5
create table t (
a varchar(30) check (
a like replicate('[a-zA-Z\_-]', len(a)) escape '\'));
照合で大文字と小文字が区別されない場合は、 と の両方は必要ありませ[a-z]
ん[A-Z]
。
于 2010-12-13T05:48:01.297 に答える
3
CREATE TABLE T
(
a VARCHAR(30) NOT NULL UNIQUE
CHECK (a NOT LIKE '%[^a-zA-Z\_-]%' ESCAPE '\')
);
于 2010-12-13T08:27:43.997 に答える