Mệnh đề OUTPUT bắt đầu được đưa ra từ SQL Server 2005 trong các lệnh DELETE, INSERT, UPDATE, để trả về (hoặc lưu vào một bảng khác) các bản ghi bị ảnh hưởng. Tính năng này rất hữu dụng khi bạn muốn lưu lại, chẳng hạn với lệnh DELETE, các bản ghi cần xóa sang một nơi khác để có thể tra cứu về sau. Ví dụ bạn có bảng KhachHang chứa các khách hàng hiện tại, và KhachHangLuu chứa các thông tin cũ của khách hàng mỗi khi có sửa đổi:
Như vậy là bạn luôn có bản lưu chứa thông tin cũ của khách hàng trên bảng KhachHangLuu mỗi khi có sửa đổi trên bảng chính. Với SQL Server 2000 bạn phải thực hiện điều trên bằng hai lệnh, INSERT vào bảng lưu rồi thực hiện DELETE/UPDATE trên bảng chính, và để đảm bảo tính toàn vẹn bạn phải đưa hai lệnh vào một transaction. Với mệnh đề OUTPUT chỉ có một lệnh được thực hiện, và bản thân nó là một transaction nên bạn khỏi cần bận tâm về điều đó.
Một ứng dụng khác của mệnh đề OUTPUT là bạn có thể dùng nó để lấy về giá trị IDENTITY vừa được INSERT vào bảng:
Không có nhận xét nào:
Đăng nhận xét