0

我一直在寻找年龄来尝试找到这个问题的答案,但还没有找到一个这样做的例子来帮助我解决如何实现它。

我正在创建一个表,我想要 MS SQL 服务器中的一列是 CHAR(5) 数据类型,但我希望它只允许它的前 2 个字符有一个字母,后面的 3 个字符只能是数字。我见过像“CHECK (UnitCode NOT LIKE '%[^A-Z0-9]%')”这样的东西,它仅限于字母和数字,但并不强制只允许哪些字符可以或不能是数字或字母。

如果有人能指出我正确的方向,我会非常感激。谢谢。

4

2 回答 2

3

WHERE column LIKE '[A-Z][A-Z][0-9][0-9][0-9]'

假设一个“字母”确实是 AZ 而不是别的(例如重音字符或非欧洲字符)。

于 2012-05-31T10:48:15.227 回答
0

您应该在创建表时指定约束检查:

CREATE TABLE table_with_data ( data_to_check CHAR(5), CONSTRAINT data_format_chk CHECK ((SUBSTRING(data_to_check FROM 1 FOR 2) LIKE '[a-zA-Z]') AND (CAST(SUBSTRING(data_to_check FROM 3 FOR 3) AS SIGNED) 0 和 999) ) );

于 2012-12-18T02:25:13.847 回答