数据库添加电话号码的检查约束,多种写法
时间: 2023-10-27 10:05:53 浏览: 131
1. 正则表达式检查约束
可以使用正则表达式来检查电话号码格式是否符合规范。例如,使用以下约束:
```sql
ALTER TABLE 表名 ADD CONSTRAINT ck_phone CHECK (phone_number LIKE '[0-9]{3}-[0-9]{3}-[0-9]{4}');
```
这个约束会检查电话号码是否有三个数字,一个破折号,再三个数字,再一个破折号,最后四个数字的格式。
2. 长度检查约束
可以设置电话号码的最大长度和最小长度,例如:
```sql
ALTER TABLE 表名 ADD CONSTRAINT ck_phone CHECK (LEN(phone_number) = 10);
```
这个约束会检查电话号码是否有10个字符。
3. 自定义函数检查约束
可以创建自定义函数来检查电话号码格式是否符合规范,例如:
```sql
CREATE FUNCTION check_phone_number(phone_number varchar(20)) RETURNS bit AS BEGIN
DECLARE @valid bit;
SET @valid = 0;
IF phone_number LIKE '[0-9]{3}-[0-9]{3}-[0-9]{4}' SET @valid = 1;
RETURN @valid;
END;
```
然后使用以下约束:
```sql
ALTER TABLE 表名 ADD CONSTRAINT ck_phone CHECK (dbo.check_phone_number(phone_number) = 1);
```
这个约束会调用自定义函数来检查电话号码格式是否符合规范。