|
|
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Привет всем! Никак не могу догнать, как можно наложить Constraint уникальности на один столбец (где NULL допустим), так, чтобы было допустимо множественность NULL значений, а NOT NULL были уникальны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 16:10:58 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
С помощью триггеров for insert & for update . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 16:16:58 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Check Constraint Expression в этой ситуации можно прикрутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 16:24:17 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Если SQL2000 EE - построить indexed view по этому столбцу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 16:24:42 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Может ли Check Constraint Expression выполнить ПРОСТОЙ селект на EXISTS. Да или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 16:46:24 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
А что Вы пробовали вставить 2 значения null и у вас констрейнт ругался по этому поводу? Если да, то см. Set ANSI_Nulls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 17:33:00 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Действительно, unique constraint все решает. что-то я переборщил со view. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 18:07:56 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
To Genady - Set ANSI_Nulls не поможет To Miha Код: plaintext 1. 2. 3. 4. 5. 6. Запускаем и получаем: Код: plaintext 1. 2. 3. Так что Jimmy дело говорит - констрейнт для случая "чтобы было допустимо множественность NULL значений" не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 19:54:53 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Вроде как обсуждали уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 19:57:07 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 12:44:22 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! Поступило несколько предложений: Использовать INSTEAD OF Trigger как тут . Использовать unique clustered index on view. Использовать FUNCTION в CHECK CONSTRAINT (можно сохранять вместо NULL - 0) Выносить в дочернюю таблицу Может проголосуем, что лучше, а то я никак не могу определиться, что использовать. Большим плюсом считаю аргументы в пользу гибкости, т.е. если это будет функция, то, есть возможность прикрутить ее в различных таблицах, также скорость немаловажный фактор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 09:13:55 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
From MSKB: ---------------------------- Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 17:21:26 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Так всё-таки, гуры, подскажите, что лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 16:53:21 |
|
||
|
Необходимо изящное решение
|
|||
|---|---|---|---|
|
#18+
Я, конечно не гуру, но по моему скромному мнению, использование 0 вместо NULL во внешнем ключе, решает многие проблемы, но правда пока я не понял, какие новые проблемы это порождает. Зато вместо left join вы всегда сможете писать inner join. Что вроде бы оптимизирует запрос. А если надо исключить нулевые значения просто пишете в условии inner join table on table.fkey = ftable.id and table.fkey <> 0 Опять же лишняя проверка, но зато inner join. Решение гибкое, правда придётся во все справочники добавить пустое значение с id = 0 и перелопатить все запросы в которых используется outer join. Не хотите, используйте предложение RatTail, гибче и проще не придумаешь. А тригеры и indexed view штука гемороидальная и без них вполне можно обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2002, 17:20:06 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32052411&tid=1819668]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 282ms |

| 0 / 0 |
