|
Помогите вставить 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:02 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
olkir, не дочитали справку по синтаксису по CASE, там есть еще и else. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:05 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
olkir, Код: sql 1.
, это новые веяния в дизайне БД? Лучше используйте NULLIF(field, 0) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:14 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
Владислав Колосов olkir, не дочитали справку по синтаксису по CASE, там есть еще и else. Если ELSE вообще не писать, то будет => ELSE NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:17 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
Владислав Колосов, О, точно, заработало ) Можно ещё вопрос, почему на одну вставку, сервер обрабатывает каких-то две(?) строки, т.е он возвращает Код: sql 1. 2. 3. 4. 5.
Откуда два раза вот эта раза про одну строку? для примера инсерт делал такой: Код: sql 1. 2.
И ещё вопрос, здесь без триггера не обойтись? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:21 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
a_voronin, Это я пробовал разные варианты, думал что если в поле пустота, то там по умолчанию подставляется null... не подставляется ( NULLIF(field, 0) Её так же в case надо использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:26 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
olkir a_voronin, Это я пробовал разные варианты, думал что если в поле пустота, то там по умолчанию подставляется null... не подставляется ( NULLIF(field, 0) Её так же в case надо использовать? "А Кока-Колу надо пить до или после?", вместо, Голубушка, вместо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 13:37 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
olkir, напишите в триггере SET NOCOUNT ON. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 14:22 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
a_voronin, Понял, но опять же, она подойдёт если у нас одно условие проверки, а если нужно проверить и на 0 и на '', использовать условие или можно по OR соединить, типа: Код: sql 1.
from... типа так? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 14:23 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
Владислав Колосов, Добавил, спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 14:29 |
|
Помогите вставить NULL
|
|||
---|---|---|---|
#18+
olkir a_voronin, Понял, но опять же, она подойдёт если у нас одно условие проверки, а если нужно проверить и на 0 и на '', использовать условие или можно по OR соединить, типа: Код: sql 1.
Во вторых, я даже не знаю, как можно написать выражение NULLIF(field, 0) or NULLIF(field, '') ??? Нужно просто сделать вложенный NULLIF Код: sql 1.
ИМХО, это лучше CASE ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 14:37 |
|
Помогите вставить 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 14:46 |
|
|
start [/forum/topic.php?fid=46&fpage=59&tid=1686083]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 305ms |
total: | 439ms |
0 / 0 |