仅允许使用特定字符的约束,MsSQL

问题描述 投票:0回答:1

示例表声明:

CREATE TABLE Person (
    ID int PRIMARY KEY,
    FirstName nvarchar(255),
    LastName nvarchar(255),
    PhoneNumber varchar(255)
)

如何添加不允许在PhoneNumber中添加任何字母的约束?

sql sql-server constraints
1个回答
0
投票
您可以使用check约束:

alter table person add constraint chk_person_phonenumber check (phonenumber not like '%[^0-9]%');

这表示phonenumber没有不是数字的字符。

请注意,如果确实需要,请扩展模式以允许使用空格,连字符或括号。

如果您真的只是想要数字,也可以使用try_convert()

check (phonenumber not like '%.%' and try_convert(decimal(38, 0), phonenumber) is not null )

但是,这在扩展字符集方面不那么灵活。
© www.soinside.com 2019 - 2024. All rights reserved.