На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS

Дорогие друзья! Поздравляем вас с Новым 2018 годом!

Всем удачи, успеха и благополучия!
В новом году ожидаем новых рекордов при подсчёте количества ёлочек на экране ;)


msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF, JoeUser
  
> Возможно ли создать ограничение check с LIKE или еще как-то..., SQL Server 2 000
    Всем привет!
    Сразу к делу.
    Есть простейшая таблица "Клиент".
    ExpandedWrap disabled
      create table Client
      (
        IDClient integer unique not null,
        Name nvarhcar(100) not null,
        Age integer check (Age > 0)
      );


    Можно ли дописать ограничение check для поля Name, чтобы контролировать не попадание цифр? То есть, если производится попытка добавить имя, в котором встречается любая цифра, то вставка не производится!

    P.S. Думаю, что на триггер Insert можно добавить проверку, но мне нужно выяснить про check.
    I originate
    You must appreciate, all the others imitate

    SCOOTER "GUEST LIST"

    'Pon the mic I'm the teacher!
    Spread my words like a preacher!
    Yiiihhaaaa!!!!

    SCOOTER "WEEKEND"
      Ну вообще-то СУБД надо указывать...
      По сабжу -check требует простого формулирования выражения, которое возвращает True или False. Выражение с использованием Like вполне отвечает этому требованию. Только для проверки на цифры желателен регёксп, а в некоторых диалектах этим занимается другое выражение.
      Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
      Есть претензии ко мне как к участнику? да ради бога.
      Не нравятся мои ответы? не читайте их.
      В общем, берегите себя. Нервные клетки не восстанавливаются.
        Цитата Akina @
        Ну вообще-то СУБД надо указывать...

        Так я вроде указал, что MS SQL Server 2000 (это вроде бы 7-ка). Или нужно было еще дописать MS = MicroSoft. ;)

        Цитата Akina @
        Только для проверки на цифры желателен регёксп, а в некоторых диалектах этим занимается другое выражение

        Т е нужно построить регулярное выражение, используя предикат LIKE, да? А разве это возможно в 7-ке?
        I originate
        You must appreciate, all the others imitate

        SCOOTER "GUEST LIST"

        'Pon the mic I'm the teacher!
        Spread my words like a preacher!
        Yiiihhaaaa!!!!

        SCOOTER "WEEKEND"
          Цитата FasterHarder @
          Так я вроде указал, что MS SQL Server 2000

          Пардон, просмотрел. Хвост сабжа - не самое читаемое место...


          Цитата FasterHarder @
          это вроде бы 7-ка

          Нет, это именно 2000.

          Цитата FasterHarder @
          Т е нужно построить регулярное выражение, используя предикат LIKE, да?

          Да. Вероятно, получится нечто типа
          ExpandedWrap disabled
            CHECK (Name NOT LIKE '%[0-9]%')
          Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
          Есть претензии ко мне как к участнику? да ради бога.
          Не нравятся мои ответы? не читайте их.
          В общем, берегите себя. Нервные клетки не восстанавливаются.
            Цитата Akina @
            Да. Вероятно, получится нечто типа

            Выражаю персональное спс!

            P.S. Все теперь отлично работает. Нужно регулярки знать и тогда можно будет вешать сложные проверки на check!
            I originate
            You must appreciate, all the others imitate

            SCOOTER "GUEST LIST"

            'Pon the mic I'm the teacher!
            Spread my words like a preacher!
            Yiiihhaaaa!!!!

            SCOOTER "WEEKEND"
              В 2000-м LIKE простой как две копейки...
              Wildcard characterDescription
              %Any string of zero or more characters.
              _ (underscore)Any single character.
              [ ]Any single character within the specified range ([a-f]) or set ([abcdef]).
              [^]Any single character not within the specified range ([^a-f]) or set ([^abcdef]).
              Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
              Есть претензии ко мне как к участнику? да ради бога.
              Не нравятся мои ответы? не читайте их.
              В общем, берегите себя. Нервные клетки не восстанавливаются.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,0893 ]   [ 18 queries used ]   [ Generated: 23.01.18, 03:51 GMT ]