Использование Microsoft SQL Server Management Studio 2008. Я выполнил простую транзакцию:
BEGIN TRAN
SELECT ko.ID, os.ID AS ID2
FROM table_a AS ko
JOIN table_b AS os ON os.ID=ko.ID
WHERE (ko.the_date IS NOT NULL AND os.the_date IS NULL);
UPDATE table_b SET the_date=ko.the_date
FROM table_a AS ko
JOIN table_b AS os ON os.ID=ko.ID
WHERE (ko.the_date IS NOT NULL AND os.the_date IS NULL);
SELECT ko.ID, os.ID AS ID2
FROM table_a AS ko
JOIN table_b AS os ON os.ID=ko.ID
WHERE (ko.the_date IS NOT NULL AND os.the_date IS NULL);
ROLLBACK
Итак, SELECT и UPDATE должны быть одинаковыми. И результат должен возвращать 0 строк. Но UPDATE влияет на одну строку меньше, чем SELECT получает из БД:
(затронуты 61 строка (и))
(затронуты 60 строк)
(затронуты 0 строк)
Что такое Мне здесь не хватает?