我对SQL有点麻烦。这是表客户:
ID Name Address Phone
KP001 Bill Jl Bali NO 27 81976524451
KP002 Jane Jl Sandang NO 5 81876537521
KP003 Dion Jl Kebon Jeruk NO 7 81684234913
原始结构表Customer:
CREATE TABLE Customer
(
ID char(5)primary key not null,
Name varchar(20),
Address varchar(30),
Phone varchar(12),
constraint cs2 check (LEN(ID)=5),
constraint cs3 check (ID like 'KP[0-9][0-9][0-9]'),
)
我希望使用Alter Table更改表结构。我想向表Customers添加约束,在'no'之后的地址必须是数字。
首先,在印度尼西亚,街道名称使用“否”作为指示街道号码。并且在'NO'之后需要Customer表。我试过这个查询:
ALTER TABLE Customers WITH NOCHECK
ADD CONSTRAINT cs_address
CHECK (CHARINDEX('no',Address)>1 AND
ISNUMERIC ( SUBSTRING (Address,7,2)) =1)
我知道查询不正确,但您可以帮我修复错误并获得正确的结果吗?
*对不起,如果我的英语不好
答案 0 :(得分:0)
如果您要验证地址始终以NO
开头,后跟数值,则
ALTER TABLE Customers WITH NOCHECK
ADD CONSTRAINT cs_address
CHECK
(
CHARINDEX('no', Address) >= 1
AND ISNUMERIC(LTRIM(RTRIM
(SUBSTRING (Address, CHARINDEX('no', Address) + 2, 7)))) = 1
)