Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.128.199.88] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Всем привет!
Сразу к делу. Есть простейшая таблица "Клиент". create table Client ( IDClient integer unique not null, Name nvarhcar(100) not null, Age integer check (Age > 0) ); Можно ли дописать ограничение check для поля Name, чтобы контролировать не попадание цифр? То есть, если производится попытка добавить имя, в котором встречается любая цифра, то вставка не производится! P.S. Думаю, что на триггер Insert можно добавить проверку, но мне нужно выяснить про check. |
Сообщ.
#2
,
|
|
|
Ну вообще-то СУБД надо указывать...
По сабжу -check требует простого формулирования выражения, которое возвращает True или False. Выражение с использованием Like вполне отвечает этому требованию. Только для проверки на цифры желателен регёксп, а в некоторых диалектах этим занимается другое выражение. |
Сообщ.
#3
,
|
|
|
Цитата Akina @ Ну вообще-то СУБД надо указывать... Так я вроде указал, что MS SQL Server 2000 (это вроде бы 7-ка). Или нужно было еще дописать MS = MicroSoft. Цитата Akina @ Только для проверки на цифры желателен регёксп, а в некоторых диалектах этим занимается другое выражение Т е нужно построить регулярное выражение, используя предикат LIKE, да? А разве это возможно в 7-ке? |
Сообщ.
#4
,
|
|
|
Цитата FasterHarder @ Так я вроде указал, что MS SQL Server 2000 Пардон, просмотрел. Хвост сабжа - не самое читаемое место... Цитата FasterHarder @ это вроде бы 7-ка Нет, это именно 2000. Цитата FasterHarder @ Т е нужно построить регулярное выражение, используя предикат LIKE, да? Да. Вероятно, получится нечто типа CHECK (Name NOT LIKE '%[0-9]%') |
Сообщ.
#5
,
|
|
|
Цитата Akina @ Да. Вероятно, получится нечто типа Выражаю персональное спс! P.S. Все теперь отлично работает. Нужно регулярки знать и тогда можно будет вешать сложные проверки на check! |
Сообщ.
#6
,
|
|||||||||||
|
В 2000-м LIKE простой как две копейки...
|