USE AdventureWorks; GO SELECT count(*) AS Count FROM Production.ProductInventory WHERE Quantity < 300;
Đó là 1 câu lệnh hoàn toàn đơn giản, kết quả của nó là:
Count ----------- 537 (1 row(s) affected)Bây giờ, dùng câu lệnh RowCount để update số dòng theo điều kiện của câu select ở trên, ta thấy chỉ có 4 dòng bị tác động
SET ROWCOUNT 4; UPDATE Production.ProductInventory SET Quantity = 400 WHERE Quantity < 300; GO (4 row(s) affected)
Câu lệnh RowCount có tác dụng dừng xử lý cho các câu lệnh Insert, Select, Update theo số dòng chỉ định, như ví dụ ở trên ta yêu cầu chỉ update 4 dòng, mặc dù điều kiện Where trả về nhiều kết quả hơn. 1 vấn đề đặt ra là câu lệnh Set RowCount có gì khác so với câu lệnh Select top?
Câu trả lời là việc xử lý bị dừng ngay lập tức khi số dòng trả về bằng số dòng được định nghĩa trong RowCount. Còn câu lệnh Select top thì nó vẫn trả về toàn bộ số dòng bên trong SQL Server, rồi sau đó mới lấy top n record trả về.
Tham khảo: http://technet.microsoft.com/en-US/library/ms188774(v=SQL.90).aspx
0 comments:
Post a Comment