У меня возникла небольшая проблема с SQL. Это таблица Клиенты:SQL Server - добавление ограничения для существующей таблицы с использованием функции Alter Table
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. Я хочу добавить ограничение в таблицу Клиенты, адреса которых после «нет» должны быть числом.
Во-первых, в Индонезии есть названия улиц с использованием номера «НЕТ» в качестве номера индикатора. И требуется таблица Customer после того, как «NO» - это номер. Я пытался с этим запросом:
ALTER TABLE Customers WITH NOCHECK
ADD CONSTRAINT cs_address
CHECK (CHARINDEX('no',Address)>1 AND
ISNUMERIC (SUBSTRING (Address,7,2)) =1)
Я знаю, что запрос неправильно, но вы можете мне помочь исправить ошибки и получить правильные результаты?
* извините, если мой английский не является хорошим
Oh! Поэтому, если вы хотите разрешить адреса, содержащие «НЕТ», но не обязательно начинать с него, см. Обновленный ответ @cindy. – Vikdor
Я просто попробовал этот запрос, но у меня возникла проблема. Если я вставляю значение «Jalan Jakarta NO 10», чем отображаемые сообщения: инструкция INSERT противоречит ограничению CHECK. Я думаю, это потому, что перед словом «НЕТ». Но я хочу, когда я вставляю значение «Jalan Jakarta NO 10», он должен быть выполнен – cindy
извините, если я неправильно понял, но где я могу увидеть обновленный ответ? @vikdor – cindy