Вопрсо по UPDATE и output clause

Winnipuh
Дата: 11.02.2013 14:25:02
делаю апдейт

UPDATE dbo.t1 SET а4=@p4 
OUTPUT inserted.id INTO #temp_4
WHERE 
EXISTS (SELECT 1 FROM #temp_t1 tmp WHERE t1.id=dbo.tmp.id)
and a4  IS NULL;
----------
(929001 row(s) affected)



Но при выборке дает другое количество:

select(*) from #temp_4;
------
3000000


Я хотел бы использовать #temp_4 со списком идентификаторов для следующей обработки апдейтнутых записей,
но почему там записей больше, чем обработано апдейтом?
Кстати, записей ровно столько, сколько в #temp_t1.
iap
Дата: 11.02.2013 14:31:02
Winnipuh,

а что такое dbo.tmp? В запросе не определено. Ругаться сервер должен.
Winnipuh
Дата: 11.02.2013 14:32:59
iap
Winnipuh,

а что такое dbo.tmp? В запросе не определено. Ругаться сервер должен.


да это я упростил имена таблиц, типа такого:

UPDATE dbo.t1 SET а4=@p4 
OUTPUT inserted.id INTO #temp_4
WHERE 
EXISTS (SELECT 1 FROM #temp_t1 tmp WHERE t1.id=tmp.id)
and a4  IS NULL;
----------
(929001 row(s) affected)



но не пойму почему в output набивается столько же, как и в #temp_t1, а обработано меньше....
Winnipuh
Дата: 11.02.2013 14:42:55
вопрос снят, нашел ошибку, извините.