2017-06-06 149 views
0

電話號碼約束。如果它是從03開始,那麼它必須是11位數字,但如果數字是10,那麼第二個數字不能是3.我的代碼不能正常工作。Sql電話號碼限制

c_Phone varchar(11) unique c_Phone check(c_Phone not like '%[^0-9]%'and 
((c_Phone like '03%' and len(c_Phone)=11) or 
(c_Phone like '0^3%' and len(c_Phone)=10)))) 
+0

什麼是你想怎麼辦?閱讀[如何創建一個MCVE](https://stackoverflow.com/help/mcve)並刪除錯誤的數據庫標籤(選擇mysql或sql server) – scsimon

+3

儘可能多的,電話號碼不符合任何合理的期望。這是一個壞主意。 – tadman

+0

我編輯過帖子,請再次看到 – Dosti

回答

0
alter table dbo.Test 
add constraint UQ_Phone unique (c_Phone) 


alter table dbo.Test 
add constraint CC_Phone check 
(
    c_Phone not like '%[^0-9]%'and 
    ((c_Phone like '03%' and len(c_Phone) = 11) or 
    (c_Phone not like '_3%' and len(c_Phone) = 10)) 
) 
+0

謝謝安東,我知道了 – Dosti