Проверка ограничения Zip 9

#sql-server

#sql-сервер

Вопрос:

Как мне написать контрольное ограничение для SQL Server, которое применяет foramt «99999-9999»? То есть все 9 цифр и тире являются обязательными.

Комментарии:

1. Вы пытались написать код, чтобы проверить это? Вы должны отредактировать, чтобы включить вашу попытку.

2. Вы можете сделать это с помощью простого LIKE сопоставления, например CHECK (id LIKE '[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]') . Однако это не совсем полезно, поскольку люди все равно могут вводить фиктивные почтовые индексы, которые не могут существовать в реальности.

3. Не отвечая на ваш вопрос, я, как правило, добивался большего успеха, сохраняя почтовый индекс отдельно от zip 4. Я ставлю тире на место только при извлечении данных. В моих системах было приемлемо иметь только почтовый индекс. Кроме того, маршруты доставки перевозчика меняются гораздо чаще, чем базовые цифры

4. @AaronBertrand Цель состоит в том, чтобы предотвратить попадание совершенно абсурдных данных в мою таблицу. Теоретически службы проверки адресов уже запущены, но я не верю, что это так.

5. Итак, вы все еще подозреваете, что у вас могут быть неверные данные в правильном формате. Для меня это все еще оставляет вас на шаг позади. 🙂