Eri*_*ins 1 database debugging sql-server-2005
这是我在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]')
Run Code Online (Sandbox Code Playgroud)
为什么这会失败?
INSERT INTO Customers
(CustomerName, Address, City, State, Zip, Phone)
VALUES
('Some Name','An Address', 'City goes here', 'WI', 12345, '(800) 555-1212')
Run Code Online (Sandbox Code Playgroud)
有此错误消息.
消息547,级别16,状态0,行1 INSERT语句与CHECK约束"CN_CustomerPhoneNo"冲突.冲突发生在数据库"Accounting",表"dbo.Customers",列"Phone"中.该语句已终止.
我确定我错过了一些非常简单的东西,但我找不到它.
我已经尝试将约束简化为'Phone LIKE'[0-9]''并插入一个数字,但它仍然失败.WTF?
检查"电话"字段的长度.
这是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
| 归档时间: |
|
| 查看次数: |
10591 次 |
| 最近记录: |