Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
4 / 4 / 0
Регистрация: 14.10.2017
Сообщений: 85
1

Составить ограничение на поле в БД

20.06.2019, 22:42. Показов 6436. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, как корректно задать необходимый формат в поле.

Есть две таблицы Customer и ITEM в задании

НаименованиеПоля ТипПоля Описание

Таблица CUSTOMER
ID | Число | Первичный ключ определяющий запись в таблице, не пустое
NAME | Строка | Наименование заказчика, не пустое
CODE | Строка | Код заказчика. Содержит данные формата "XXXX-ГГГГ", где X - Число, Г - Год регистрации заказчика

Таблица ITEM
ID | Число | Первичный ключ определяющий запись в таблице, не пустое
NAME | Строка | Наименование заказчика, не пустое
CODE | Строка | Код товара. Содержит данные формата "XX-XXXX-YYXX", где X - Число,Y - Заглавная буква латинского алфавита

Подскажите, как корректно составить ограничение на поле CODE в первом и втором случае.

Добавлено через 1 час 48 минут
Подскажите хоть чего читать, или как это хоть примерно сделать, я просто не пойму куда копать чтоб SQL проверку такую делал.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2019, 22:42
Ответы с готовыми решениями:

Ограничение не поле ввода
Добрый день, подскажите пожалуйста, как сделать ограничение на поле ввода? Мне нужно, чтобы...

Ограничение на текстовое поле
Здравствуйте, надо сделать так, чтобы в текстовое поле можно было ввести только ноль и...

Ограничение на допустимые значения в поле
здравствуйте, у меня есть следующий вопрос - мне нужно создать триггер, который будет ограничивать...

Ограничение на символов в поле форми
Народ нужен скрипт для ограничение ввода на клиентской стороне например: разрешит ввод только цифр...

6
46 / 33 / 14
Регистрация: 12.09.2013
Сообщений: 167
21.06.2019, 02:43 2
Alone11,
Цитата Сообщение от Alone11 Посмотреть сообщение
Подскажите, как корректно составить ограничение на поле CODE в первом и втором случае.
Что вы под этим подразумеваете?
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,130
Записей в блоге: 3
21.06.2019, 08:30 3
Цитата Сообщение от Alone11 Посмотреть сообщение
Подскажите хоть чего читать
http://unetway.com/tutorial/sql-ogranicenie-check/
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,269
21.06.2019, 16:06 4
Лучший ответ Сообщение было отмечено Alone11 как решение

Решение

1. Таблица CUSTOMER
T-SQL
1
[NAME] строка COLLATE Cyrillic_General_BIN NOT NULL
2.
T-SQL
1
2
ALTER TABLE CUSTOMER ADD CONSTRAINT cCode
CHECK([CODE] LIKE REPLACE(REPLACE('XX-XXXX-YYXX','X','[0123456789]'),'Y','[ABCDEFGHIJKLMNOPQRSTUVWXYZ]'));
Добавлено через 8 минут
Исправил слегка:

1. Таблица ITEM
T-SQL
1
[NAME] строка COLLATE Cyrillic_General_BIN NOT NULL
2.
T-SQL
1
2
ALTER TABLE ITEM ADD CONSTRAINT cCodeItem
CHECK([CODE] LIKE REPLACE(REPLACE('XX-XXXX-YYXX','X','[0123456789]'),'Y','[ABCDEFGHIJKLMNOPQRSTUVWXYZ]'));
3.
T-SQL
1
2
ALTER TABLE CUSTOMER ADD CONSTRAINT cCodeCustomer
CHECK([CODE] LIKE REPLACE('XXXX-XXXX','X','[0123456789]') AND ISDATE(RIGHT([CODE],4))=1);
1
4 / 4 / 0
Регистрация: 14.10.2017
Сообщений: 85
21.06.2019, 18:16  [ТС] 5
Мага спасибо, вот вопрос еще остался такой, если не сложно, есть поле:

DISCOUNT DECIMAL(18,2) оно отображает процент скидки, если 0 или NULL - скидки нет.
От сюда вопрос, как поставить ограничение на то чтоб при принятии NULL значение ставилось в ноль.

Понятно что можно поставить DEFAULT(0), или сделать валидацию на стороне клиента, или хранимой процедурой, так же можно в SELECT сделать замену или в UPDATE, но вот чтоб ограничение поставить сразу, как то можно ? с CHECK что то не выходит? Потому как в задании не сказано что поле не может принимать NULL, следовательно NOT NULL не подходит, так как сразу ругнется, нужно чтоб он принимая сразу менял значение. Без хранимой можно как то?
0
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
26.06.2019, 14:51 6
Так а DEFAULT(0) чем не устраивает?
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,269
26.06.2019, 15:13 7
Цитата Сообщение от AsTerra Посмотреть сообщение
Так а DEFAULT(0) чем не устраивает?
Наверно, тем, что работает только при вставке без явного указания поля?
0
26.06.2019, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2019, 15:13
Помогаю со студенческими работами здесь

Сделать ограничение ввода в поле
Есть калькулятор перевода чисел из любой системы в любую. Необходимо сделать ограничение на этапе...

Ограничение ввода в текстовое поле
Необходимо создать TextBox, который запрашивает у пользователя его имя. Если пользователь оставляет...

Ограничение символов вводимых в поле
Привет народ , можно ли в поле ограничить количество вводимых символов , мне конкретно нужно - есть...

Добавить ограничение на ввод в числовое поле
Здравствуйте. Подскажите пожалуйста, возможно ли при создании таблицы на T-SQL создать такое поле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru