当前位置:  开发笔记 > 编程语言 > 正文

SQL Server命令LIKE [0-9]将不匹配0到9之间的任何数字

如何解决《SQLServer命令LIKE[0-9]将不匹配0到9之间的任何数字》经验,为你挑选了1个好方法。

这是我在Customers表上的约束.

ALTER TABLE Customers
    ADD CONSTRAINT CN_CustomerPhone
    CHECK (Phone LIKE '([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')

为什么这会失败?

INSERT INTO Customers
(CustomerName, Address, City, State, Zip, Phone)
VALUES
('Some Name','An Address', 'City goes here', 'WI', 12345, '(800) 555-1212')

有此错误消息.

消息547,级别16,状态0,行1 INSERT语句与CHECK约束"CN_CustomerPhoneNo"冲突.冲突发生在数据库"Accounting",表"dbo.Customers",列"Phone"中.该语句已终止.

我确定我错过了一些非常简单的东西,但我找不到它.

我已经尝试将约束简化为'Phone LIKE'[0-9]''并插入一个数字,但它仍然失败.WTF?



1> shahkalpesh..:

检查"电话"字段的长度.
这是15个字符还是更多?

在这里使用带有临时表的代码


create table #temp
(phone varchar(15))

ALTER TABLE #temp
    ADD CONSTRAINT CN_CustomerPhone
    CHECK (Phone LIKE '([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')

INSERT INTO #temp
(Phone)
VALUES
('(800) 555-1212')

select * from #temp

drop table #temp

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有