次の SQL Server 2008 テーブルがあります。
CREATE TABLE tbl (ID INT, dtIn DATETIME2, dtOut DATETIME2, Type INT, nID INT)
INSERT tbl VALUES
(1, '05:00', '10:00', 1, 1), --will be changed
(2, '08:00', '16:00', 2, 1),
(3, '02:00', '08:00', 1, 1), --will be changed
(4, '07:30', '11:00', 1, 1)
次の SQL を使用して、部分的に重複しているレコードを更新します。
UPDATE tbl
SET dtOut = COALESCE((
SELECT MIN(dtIn)
FROM tbl as t2
WHERE t2.type = tbl.type AND
t2.id <> tbl.id AND
t2.dtIn >= tbl.dtIn AND t2.dtIn < tbl.dtOut
), dtOut)
WHERE nID=1;
SELECT ROWCOUNT_BIG();
最後の SELECT で、更新されたレコードの数を取得しようと思ったのですが、うまくいきません。
私の質問は、実際に更新されたレコードの数を取得するには、このステートメントをどのように書き直すことができるでしょうか? (上記データ表の 2)