Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удаление данных по условию  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Имеется скрипт, не могу понять ошибку Недопустимое имя объекта "updated". при выполнении скрипта:
DELETE CI
FROM CI
LEFT JOIN SoftwareInfo  ON SoftwareInfo.CIID=CI.CIID
WHERE SoftwareInfo.CIID is null and CITYPEID IN (SELECT CITYPEid from CI where (CI.CITYPEID=24 or CI.CITYPEID=23 or CI.CITYPEID=36 or CI.CITYPEID=35 or CI.CITYPEID=37 
or CI.CITYPEID=3601 or CI.CITYPEID=3602 or CI.CITYPEID=3603 or CI.CITYPEID=3604 or CI.CITYPEID=3605 or CI.CITYPEID=14))
5 фев 17, 09:23    [20181285]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
В вашем скрипте updated не упоминается.
Документацию вы продолжаете упорно игнорировать. Иначе бы знали, что updated не существует, - есть inserted и deleted.
5 фев 17, 10:25    [20181326]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
CITYPEID IN (SELECT CITYPEid from CI where (CI.CITYPEID=24 or CI.CITYPEID=23 or CI.CITYPEID=36 or CI.CITYPEID=35 or CI.CITYPEID=37
or CI.CITYPEID=3601 or CI.CITYPEID=3602 or CI.CITYPEID=3603 or CI.CITYPEID=3604 or CI.CITYPEID=3605 or CI.CITYPEID=14

жесть
5 фев 17, 12:40    [20181433]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
invm
В вашем скрипте updated не упоминается.


Вот именно, что нет updated. Но ругается на него.

waszkiewicz
CITYPEID IN (SELECT CITYPEid from CI where (CI.CITYPEID=24 or CI.CITYPEID=23 or CI.CITYPEID=36 or CI.CITYPEID=35 or CI.CITYPEID=37
or CI.CITYPEID=3601 or CI.CITYPEID=3602 or CI.CITYPEID=3603 or CI.CITYPEID=3604 or CI.CITYPEID=3605 or CI.CITYPEID=14

жесть


Можно так:
select *
FROM CI
LEFT JOIN SoftwareInfo  ON SoftwareInfo.CIID=CI.CIID
WHERE SoftwareInfo.CIID is null AND CI.CITYPEID IN (14, 23, 24, 35, 36, 37, 3601, 3602, 3603, 3604, 3605, 14)


Но работать он все равно не будет.
5 фев 17, 13:07    [20181447]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Vladsn07
Вот именно, что нет updated. Но ругается на него.
Триггер на удаление смотрите.
5 фев 17, 13:10    [20181450]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Vladsn07
Вот именно, что нет updated. Но ругается на него.
Очевидно же, что срабатывает кривой триггер.
5 фев 17, 13:20    [20181453]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
сам по себе триггер работает, но видимо, что-то не так, в softwareinfo есть триггер:

BEGIN
  UPDATE Workstation_Fields SET UDF_CHAR1='Нет'
FROM RESOURCES r
LEFT JOIN ResourceOwner ON r.RESOURCEID=ResourceOwner.RESOURCEID 
LEFT JOIN Workstation_Fields ON Workstation_Fields.WORKSTATIONID=r.RESOURCEID
LEFT JOIN SoftwareInfo ON r.RESOURCEID=SOFTWAREINFO.WORKSTATIONID
LEFT JOIN SoftwareList ON SoftwareList.SOFTWAREID=SoftwareInfo.SOFTWAREID
WHERE SoftwareList.SOFTWARETYPEID='2' AND exists (
select * FROM SoftwareInfo 
JOIN SoftwareList ON SoftwareList.SOFTWAREID=SoftwareInfo.SOFTWAREID 
where r.RESOURCEID=SOFTWAREINFO.WORKSTATIONID and SoftwareList.SOFTWARETYPEID='2' 
AND SoftwareInfo.LICENSEID is NULL)
END
5 фев 17, 13:27    [20181459]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Vladsn07
сам по себе триггер работает, но видимо, что-то не так, в softwareinfo есть триггер:
Очевидно, что если в стейтменте нет слова updated, но ошибка "Недопустимое имя объекта "updated"", то есть триггер, в котором есть слово updated. Может, триггер на объект, который обновляется в вашем триггере.
Как может быть по другому?

Ну, если так не можете найти, запустите трейс на коннект, с входом внутрь, увидите источник ошибки.
Хотя по моему и так просто найти, глазами.
5 фев 17, 13:31    [20181462]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Vladsn07
сам по себе триггер работает, но видимо, что-то не так, в softwareinfo есть триггер:
При чём тут триггер на softwareinfo ? Он же не вызывается.
Смотрите триггер на CI, а дальше по цепочке.
5 фев 17, 13:33    [20181464]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
alexeyvg
Vladsn07
сам по себе триггер работает, но видимо, что-то не так, в softwareinfo есть триггер:
При чём тут триггер на softwareinfo ? Он же не вызывается.
Смотрите триггер на CI, а дальше по цепочке.


при отключении этого триггера удаление работает
5 фев 17, 13:36    [20181466]     Ответить | Цитировать Сообщить модератору
 Re: Удаление данных по условию  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Был еще один триггер не дописанный в тестовой базе, исправил его и удаление заработало. Всем спасибо.
5 фев 17, 14:00    [20181484]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить