Nhật ký giao dịch không ghi lại các câu lệnh SQL đang được thực thi, như bạn có thể mong đợi. Thay vào đó, nó ghi lại các thay đổi đối với dữ liệu thô trong từng cơ sở dữ liệu.
Có thể một Proc được lưu trữ từ một cơ sở dữ liệu sẽ hoạt động hoàn toàn trong nhật ký giao dịch của cơ sở dữ liệu khác.
... database1..my_stored_procedure AS
BEGIN
INSERT INTO database2..table1 (col1) values (1);
^^ changes written to database2's tlog
INSERT INTO database2..table2 (col1) values (2);
^^ changes written to database2's tlog
END
^^ when this transaction is committed, COMMIT is recorded in database2's tlog
Hoặc cho nó để thay đổi cả hai.
... database2..my_other_stored_procedure AS
BEGIN
INSERT INTO database1..table1 (col1) values (1);
^^ changes written to database1's tlog
INSERT INTO database2..table1 (col1) values (2);
^^ changes written to database2's tlog
END
^^ when this transaction is committed, COMMIT is recorded in BOTH database1's and database2's tlog
Những gì được ghi lại trong nhật ký giao dịch là những thay đổi dữ liệu thực tế , không phải là các câu lệnh SQL gây ra chúng. Các mục nhập cho mỗi tệp nhật ký giao dịch là hoàn toàn độc lập, ngoại trừ trong trường hợp CAMIT được ghi vào hai tệp nhật ký cùng một lúc, sau khi giao dịch được thực hiện.
Logic tương tự được áp dụng nếu bạn có một giao dịch lớn hơn đang chạy một số thủ tục được lưu trữ trên nhiều cơ sở dữ liệu. Khi bạn CAM KẾT giao dịch của mình, CAM KẾT sẽ được ghi lại trong nhật ký của mọi cơ sở dữ liệu đã tham gia giao dịch.
Hoàn toàn có thể khôi phục bản sao lưu cơ sở dữ liệu2 và phát lại nhật ký giao dịch của nó trên máy chủ không có cơ sở dữ liệu1.
Hành vi này cho phép một số linh hoạt trong cách các thủ tục và chế độ xem được trình bày trong SQL Server. Nhiều quản trị viên cơ sở dữ liệu giữ các quy trình được lưu trữ của họ - đặc biệt là các quy trình bảo trì - trong cơ sở dữ liệu (ví dụ Admin
) hoàn toàn tách biệt với cơ sở dữ liệu ứng dụng / người dùng và viết kết quả của hoạt động bảo trì vào cơ sở dữ liệu đó. Rất may, có thể khôi phục một trong các cơ sở dữ liệu người dùng vào máy chủ phát triển mà không cần phải sao chép lại Admin
.