Новые сообщения [новые: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&mobile=1&tid=1686083]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 127ms |
0 / 0 |