Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
VIT2708_
Guest |
подскажите как написать запрос@item int, @parent int = null, @theme int as begin delete from Table where item=@item and parent=@parent and theme=@theme end если @parent не NULL то все нормально работает по id записи удалять не могу так как на веб клиент id не передается спасибо |
23 окт 14, 10:55 [16747030] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
VIT2708_, а что должно быть при @parent is null? Так что ли: DELETE T WHERE EXISTS(SELECT item,parent,theme INTERSECT SELECT @item,@parent,@theme);? |
23 окт 14, 10:58 [16747057] Ответить | Цитировать Сообщить модератору |
VIT2708_
Guest |
Спасибо, то что надо PS: это таблица для построения обычного дерева на веб клиенте |
||
23 окт 14, 11:05 [16747101] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
DELETE T WHERE item=@item AND (parent=@parent OR @parent IS NULL AND parent IS NULL) AND theme=@theme; |
||||
23 окт 14, 11:39 [16747299] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4805 |
Если у вас есть значение, которое заведомо не встречается в поле или параметре, то можно записать такDELETE T WHERE item=@item AND ISNULL(parent, -1) = ISNULL(@parent, -1) AND theme=@theme; |
23 окт 14, 12:50 [16747752] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
Так что.. И никаких допущений о типе полей и параметров. |
||
23 окт 14, 12:58 [16747818] Ответить | Цитировать Сообщить модератору |
Shakill Member Откуда: мск Сообщений: 1882 |
+1.
|
||||||
23 окт 14, 13:48 [16748308] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
И тут как-то писали, что реализация ISNULL становится всё умнее ![]() |
||||||
23 окт 14, 13:52 [16748338] Ответить | Цитировать Сообщить модератору |
Shakill Member Откуда: мск Сообщений: 1882 |
да, я про nullable поля по собственному опыту рефакторинга старого кода под 2008R2. |
||||
23 окт 14, 13:59 [16748383] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |