1

次の ID 番号に対して SQL チェック制約を実行しようとしています。

Name: EmployeeID
Data Type: char
Size: 10

Microsoft SQL Server 2008 R2 を使用していますが、何らかの理由でチェック制約としてではなく、クエリで機能するいくつかの SQL コマンドを使用する方法を理解するのに苦労しています。

などのLIKEを使ってやろうとしています

EmployeeID LIKE '[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]'

しかし、それはこれを受け入れません。そのような制約に対処するためのより良い方法はありますか?

ありがとうございました。

4

2 に答える 2

3

角かっこの間にスペースがなく、機能するはずです。

EmployeeID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
于 2012-11-20T18:06:48.920 に答える
2

現在、制約には 9 つのスペースが存在する必要があります。試す:

EmployeeID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

または多分:

LEN(EmployeeID) = 10 and EmployeeID not like '%[^0-9]%'

これは、文字が のグループ外になく0-9、長さが 10 文字であることを示しています。将来的に長さを変更する必要がある場合は、より保守しやすくなります。

于 2012-11-20T18:07:13.697 に答える