Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.05.2020, 13:02
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
Приветствую, задача такая, есть таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Используемое приложение делает вставку в эту таблицу данные, проблема в том, что иногда в поля rccID , refName и taskIDs могут передаваться пустые строки, в результате, после insert-а, в поле rccID пишется 0, в полях refName и taskIDs - пустота, а мне нужно, чтобы в этих полях стоял NULL. Пробовал у этих полей в объявлении таблицы ставить "default null" (как в моем примере) - не помогает. Так же попробовал написать триггер: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но в этом случае SQL Server ругается на case: Код: sql 1. Что можно сделать? Т.е нужно, чтобы, если пишем в эти три поля '' или 0, то в них должно быть именно NULL, а не 0 или пустота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 13:05
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
olkir, не дочитали справку по синтаксису по CASE, там есть еще и else. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 13:14
|
|||
|---|---|---|---|
Помогите вставить NULL |
|||
|
#18+
olkir, Код: sql 1. , это новые веяния в дизайне БД? Лучше используйте NULLIF(field, 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 13:17
|
|||
|---|---|---|---|
Помогите вставить NULL |
|||
|
#18+
Владислав Колосов olkir, не дочитали справку по синтаксису по CASE, там есть еще и else. Если ELSE вообще не писать, то будет => ELSE NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 13:21
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
Владислав Колосов, О, точно, заработало ) Можно ещё вопрос, почему на одну вставку, сервер обрабатывает каких-то две(?) строки, т.е он возвращает Код: sql 1. 2. 3. 4. 5. Откуда два раза вот эта раза про одну строку? для примера инсерт делал такой: Код: sql 1. 2. И ещё вопрос, здесь без триггера не обойтись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 13:26
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
a_voronin, Это я пробовал разные варианты, думал что если в поле пустота, то там по умолчанию подставляется null... не подставляется ( NULLIF(field, 0) Её так же в case надо использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 13:37
|
|||
|---|---|---|---|
Помогите вставить NULL |
|||
|
#18+
olkir a_voronin, Это я пробовал разные варианты, думал что если в поле пустота, то там по умолчанию подставляется null... не подставляется ( NULLIF(field, 0) Её так же в case надо использовать? "А Кока-Колу надо пить до или после?", вместо, Голубушка, вместо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 14:22
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
olkir, напишите в триггере SET NOCOUNT ON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 14:23
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
a_voronin, Понял, но опять же, она подойдёт если у нас одно условие проверки, а если нужно проверить и на 0 и на '', использовать условие или можно по OR соединить, типа: Код: sql 1. from... типа так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 14:29
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
Владислав Колосов, Добавил, спасибо ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 14:37
|
|||
|---|---|---|---|
Помогите вставить NULL |
|||
|
#18+
olkir a_voronin, Понял, но опять же, она подойдёт если у нас одно условие проверки, а если нужно проверить и на 0 и на '', использовать условие или можно по OR соединить, типа: Код: sql 1. Во вторых, я даже не знаю, как можно написать выражение NULLIF(field, 0) or NULLIF(field, '') ??? Нужно просто сделать вложенный NULLIF Код: sql 1. ИМХО, это лучше CASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 14:46
|
|||
|---|---|---|---|
Помогите вставить NULL |
|||
|
#18+
alexeyvg olkir a_voronin, Понял, но опять же, она подойдёт если у нас одно условие проверки, а если нужно проверить и на 0 и на '', использовать условие или можно по OR соединить, типа: Код: sql 1. Во вторых, я даже не знаю, как можно написать выражение NULLIF(field, 0) or NULLIF(field, '') ??? Нужно просто сделать вложенный NULLIF Код: sql 1. ИМХО, это лучше CASE Если посмотреть на исходный пример триггера, то имелось ввиду Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2020, 14:46
|
|||
|---|---|---|---|
|
|||
Помогите вставить NULL |
|||
|
#18+
alexeyvg, чуть короче, а так кому что удобнее читать Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1686083]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 331ms |

| 0 / 0 |
