powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание ограниченя на столбец
19 сообщений из 44, страница 2 из 2
Создание ограниченя на столбец
    #39960719
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2alexeyvg

alexeyvg
edward_sh
Использовать ли ограничения на значение столбцах или же использовать триггер?
Конечно, ограничения.


Почему предпочтительнее ограничение (в рассматриваемом случае check) перед триггером?
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39960804
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist
2alexeyvg

alexeyvg
пропущено...
Конечно, ограничения.

Почему предпочтительнее ограничение (в рассматриваемом случае check) перед триггером?
Оно быстрее, и его легче написать без багов.

Я представляю, какой будет триггер, если человек 21 день создаёт чек-констрейн.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39960818
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Оно быстрее, ...


За счёт чего быстрее?

Можно привести репо?
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39960824
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist
За счёт чего быстрее?
Планы сравните и увидите.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39960835
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 alexeyvg

Вопрос снимаю :)

2 invm
invm
Планы сравните и увидите.


Как всегда коротко и доходчиво. Спасибо. :)
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39971951
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очередной вопрос по заданию ограничения на столбец.
Есть столбец, в котором описываются типы услуг...
Например,
Реализация основных профессиональных образовательных программ профессионального обучения - программ профессиональной подготовки по профессиям
Реализация дополнительных профессиональных программ (МНС, СНС) на базе среднего или высшего профессионального образования
Пишу ограничение на столбец типа такого:
(NOT [fEduServiceMainDescr] like '%[!0-9а-я., ()-]%')
Получаю ошибку, что ранее введенные данные не соответствуют ограничению.
Мне нужно допустить ввод ТОЛЬКО русских букв и некоторых знаков пунктуации(точка, запятая, пробел и тире)...
Подскажите, что я делаю не так?
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972002
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh,

в указанной колонке уже есть данные, не проходящие проверку.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972137
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То, что в колонке есть данные, не проходящие проверку ограничения - я понимаю.
Я не могу понять, на какой символ ограничение "делает стойку" и правильно ли я написал
правило ограничения вводимых символов?
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972153
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На зарубежных форумах нашел решение, попробовал - вроде работает.
(NOT [fEduServiceMainDescr] like '%[^0-9а-я., ()-]%')
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972174
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh
То, что в колонке есть данные, не проходящие проверку ограничения - я понимаю.
Я не могу понять, на какой символ ограничение "делает стойку" и правильно ли я написал
правило ограничения вводимых символов?


Ну дык, страдалец, начертай

Код: sql
1.
Select * from Таблица where NOT ограничение



И воотчую узришЪ.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972796
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Alex222:
Учу читать ДОРОГО!
Прежде чем писать что-то, извольте сударь, прочитать сообщение...
У меня одна строка в таблице, и без Вашего запроса я знаю, что косяк в ней.
Вопрос был про СИМВОЛ в строке.
Тем более, что решение я нашел сам, возможно, это пригодится кому-то.
Выбросьте свой старославянский букварь - по нему уже никто не говорит и не пишет.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972837
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник очередной вопрос - как в строке ограничения задать допустимые символы ' и " ?
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39972998
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самый раз начать срач про "нужны ли констрейнты ?" :)
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39973122
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh,

для выражения like '%[!0-9а-я., ()-]%' достаточно наличия любого символа из списка, например, выражение '#9#' будет валидировано, хотя оно не должно пройти проверку.
Для избежания этого надо выбрать обратную проверку, отобрать неподходящие символы и убедиться, что полученное множество пустое. Сделать это можно несколькими способами, например, перечислив все "плохие" символы в выражении like или выполнив отрицание "хороших". Пример, который Вы нашли выполняет второй способ.

Применяйте логическую дедукцию, изучайте справку по операторам и всё получится.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39973405
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотите совет?
Сделайте выборку по максимальным и минимальным значениям дат DateBegin и DateEnd.
Уверен, что вопрос отпадет сам по себе.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39973442
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh
Возник очередной вопрос - как в строке ограничения задать допустимые символы ' и " ?
А в чём проблема? Просто на клавиатуре набираете, и всё.
Код: sql
1.
where field like '%''%'
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39973604
edward_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To SQL2008:
В таблице две записи у которых дата начала стоит 2017-01-01, дата окончания NULL. Что Вы хотели узнать (подсказать)?

To Alexeyvg:
Уважаемые коллеги, прежде чем отвечать, прочитайте ВНИМАТЕЛЬНО вопрос. Вопрос состоял не как в предикате WHERE задать символы кавычек....

To Владислав Колосов:
В литературе по написанию баз данных SQL (по крайней мере, что мне попадались) описываются простые типы ограничений, типа возраст более 18 лет, дата не меньше текущей и т.д. Про задания диапазона допустимых вводимых символах - нигде, только в конференциях (и, к сожалению, в большинстве своем - зарубежных). Кстати, нигде не встречалось описание сравнения, когда дата начала есть, а дата окончания NULL (открытая). Если в лоб сравнивать, то при начале NULL и какой-то финальной даты - получим NULL, если обе даты NULL, опять получим NULL...

Модератор: Поменьше эпатажа с этим вашим "внимательно читайте вопрос". Отвечающие у вас тут не на экзамене.
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39973653
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh,

учебники, безусловно, важны, но первичным документом является прилагаемая к серверу документация. Я для удобства установил справку SQL локально. Например, Вы выбрали для исполнения оператор LIKE или нашли какой-то пример с его описанием. Соответственно, понятия не имеете о его области применения, ограничениях использования, и, наконец, аргументах. Можете скопировать пример и пытаться методом "тыка", используя свои знания других языков программирования, подобирать нужные параметры. А можно обратиться к справке.
В данном случае в справке указаны четыре символа-шаблона, один из которых подошел бы для проверки "плохих" символов.

Также точно можно прочесть об обработке NULL в теме null values [SQL server].
...
Рейтинг: 0 / 0
Создание ограниченя на столбец
    #39973658
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edward_sh
Уважаемые коллеги, прежде чем отвечать, прочитайте ВНИМАТЕЛЬНО вопрос. Вопрос состоял не как в предикате WHERE задать символы кавычек....
Нет, вопрос в этом, я же вижу:
edward_sh
как в строке ограничения задать допустимые символы ' и " ?
Дословно - "как задать символы кавычек".

Если из за ерунды получается топик на несколько страниц, длительностью недели, то, подумайте, может, дело в формулировках, в описании задачи?
Перечитайте ваши посты, вы бы приняли их за постановку задачи, если бы были фрилансером, и от вашего понимания зависела бы оплата?

Понятней формулируйте задачи, не стесняйтесь выкладывать репро: временные таблицы с заполнением их данными, ваш запрос, ваш результат, и покажите желаемый результат.
Тогда вы потратите несравнимо меньше времени, а ваши посты не будут встречаться неизменным смехом.
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание ограниченя на столбец
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]