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

Откуда: Київ
Сообщений: 10428
делаю апдейт

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.
11 фев 13, 14:25    [13908832]     Ответить | Цитировать Сообщить модератору
 Re: Вопрсо по UPDATE и output clause  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Winnipuh,

а что такое dbo.tmp? В запросе не определено. Ругаться сервер должен.
11 фев 13, 14:31    [13908889]     Ответить | Цитировать Сообщить модератору
 Re: Вопрсо по UPDATE и output clause  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
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, а обработано меньше....
11 фев 13, 14:32    [13908906]     Ответить | Цитировать Сообщить модератору
 Re: Вопрсо по UPDATE и output clause  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
вопрос снят, нашел ошибку, извините.
11 фев 13, 14:42    [13909014]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить