Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
X-Cite Member Откуда: Минск Сообщений: 1810 |
Вот код, сокращать не стал:UPDATE Syn_Nefis_Outlet SET ClientName = rez.cosign_Cosignatory_Name, [Name] = rez.Cm_Outlet_Name, [Address] = rez.[address], YNP = rez.YNP, ChangeDate = GETDATE(), [Active] = 1, ChangeDateDK = rez.ChangeDate FROM (SELECT DISTINCT fp.id_pogr, cc.Name AS cosign_Cosignatory_Name, co.Name AS Cm_Outlet_Name, ga.[address], cc.YNP, dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime(fp.changedate, co.ChangeDate), ga.changedate), ff.changedate), cc.changedate), fp2.changedate), fa.changedate), fag.changedate) AS ChangeDate FROM F_Pogr fp JOIN Cm_Outlet co ON co.id_cm_outlet = fp.id_cm_outlet JOIN Geo_Address ga ON ga.id_geo_address = co.id_geo_address JOIN F_Firm ff ON ff.id_firm = fp.id_firm JOIN cosign_Cosignatory cc ON cc.id_cosignatory = ff.id_cosignatory JOIN F_Points fp2 ON fp2.id_pogr = fp.id_pogr JOIN F_Agent fa ON fa.id_Agent = fp2.id_agent JOIN F_Agents_Goods fag ON fag.id_group_ag = fa.id_group JOIN vw_ExchangeFormatNefisGoods vefng ON vefng.Id = fag.id_group WHERE vefng.Id_ExchangeFormatType IN (1,2)) rez WHERE Syn_Nefis_Outlet.Id_Outlet = rez.id_pogr AND Syn_Nefis_Outlet.ChangeDateDK <> rez.ChangeDate AND rez.id_pogr = 129782362 Здесь Syn_Nefis_Outlet - это синоним на таблицу в другой БД на том же сервере. Поле ChangeDate во всех таблицах NOT NULL. Вот конкретно для этой записи Update не выполняется вот тут: ChangeDateDK = rez.ChangeDate Пишет (1 row(s) affected) т.е. он проходит, но поле не апдейтит. Селект запись выбирает. Если преобразовать в SELECT он показывает, что все поля совпадают кроме ChangeDateDK, rez.ChangeDate |
4 апр 13, 12:08 [14134918] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Триггер срабатывает ? |
||
4 апр 13, 12:10 [14134938] Ответить | Цитировать Сообщить модератору |
X-Cite Member Откуда: Минск Сообщений: 1810 |
Glory, Ммм.. таблица Syn_Nefis_Outlet ходит по репликации и там есть только репликационные триггера ins, upd, del |
4 апр 13, 12:14 [14134970] Ответить | Цитировать Сообщить модератору |
X-Cite Member Откуда: Минск Сообщений: 1810 |
И если запустить репликацию, то она забирает эту запись, т.к. считает что она изменилась. |
4 апр 13, 12:21 [14135016] Ответить | Цитировать Сообщить модератору |
X-Cite Member Откуда: Минск Сообщений: 1810 |
Значение полей такое: Syn_Nefis_Outlet.ChangeDateDK = '2013-04-03 14:34:44.460' rez.ChangeDate = '2013-03-06 15:45:54.230' |
4 апр 13, 12:22 [14135023] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
Добавьте предложение output inserted.* и все увидите. |
4 апр 13, 12:22 [14135025] Ответить | Цитировать Сообщить модератору |
X-Cite Member Откуда: Минск Сообщений: 1810 |
invm, Спасибо, потом рассмотрю что это. Не знал, думаю это мне в будущем поможет раскапывать проблему намного быстрее. А сейчас раскопал вот это. SELECT DISTINCT dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime( dbo.MAX_DateTime(fp.changedate, co.ChangeDate), ga.changedate), ff.changedate), cc.changedate), fp2.changedate), fa.changedate), fag.changedate) AS ChangeDate FROM F_Pogr fp JOIN Cm_Outlet co ON co.id_cm_outlet = fp.id_cm_outlet JOIN Geo_Address ga ON ga.id_geo_address = co.id_geo_address JOIN F_Firm ff ON ff.id_firm = fp.id_firm JOIN cosign_Cosignatory cc ON cc.id_cosignatory = ff.id_cosignatory JOIN F_Points fp2 ON fp2.id_pogr = fp.id_pogr JOIN F_Agent fa ON fa.id_Agent = fp2.id_agent JOIN F_Agents_Goods fag ON fag.id_group_ag = fa.id_group JOIN vw_ExchangeFormatNefisGoods vefng ON vefng.Id = fag.id_group WHERE fp.id_pogr = 129782362 AND vefng.Id_ExchangeFormatType IN (1,2) Возвращает 2 записи. '2013-03-06 15:45:54.230' '2013-04-03 14:34:44.460' Вопрос закрыт |
4 апр 13, 12:37 [14135161] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |