Microsoft SQL Server ManagementStudio2008を使用しています。簡単なトランザクションを実行しました。
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がDBから取得する行よりも1行少なく影響します。
(影響を受ける61行)
(影響を受ける60行)
(影響を受ける0行)
ここで何が欠けていますか?