Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Giao dịch xung quanh một câu lệnh đơn làm gì?

Nó không làm gì cả. Tất cả các Câu lệnh SQL riêng lẻ, (với những ngoại lệ hiếm hoi như Chèn hàng loạt không có Nhật ký hoặc Bảng cắt ngắn) đều tự động là "Trong một giao dịch" cho dù bạn có nói rõ ràng như vậy hay không .. (ngay cả khi chúng chèn, cập nhật hoặc xóa hàng triệu hàng) .

CHỈNH SỬA:dựa trên nhận xét của @ Phillip bên dưới ... Trong các phiên bản hiện tại của SQL Server, Chèn hàng loạt và Bảng cắt ngắn có ghi một số dữ liệu vào nhật ký giao dịch, mặc dù không nhiều như các hoạt động khác. Sự khác biệt quan trọng từ góc độ giao dịch, là trong các loại hoạt động khác này, dữ liệu trong các bảng cơ sở dữ liệu của bạn đang được sửa đổi không có trong nhật ký ở trạng thái cho phép nó được khôi phục.

Tất cả điều này có nghĩa là các thay đổi mà câu lệnh thực hiện đối với dữ liệu trong cơ sở dữ liệu được ghi vào nhật ký giao dịch để chúng có thể được hoàn tác nếu thao tác không thành công.

Chức năng duy nhất mà các lệnh "Bắt đầu giao dịch", "Giao dịch cam kết" và "Giao dịch RollBack" cung cấp là cho phép bạn đặt hai hoặc nhiều câu lệnh SQL riêng lẻ vào cùng một giao dịch.

CHỈNH SỬA:(để củng cố nhận xét đánh dấu ...) CÓ, điều này có thể được cho là do lập trình "mê tín" hoặc nó có thể là dấu hiệu của sự hiểu lầm cơ bản về bản chất của các giao dịch cơ sở dữ liệu. Một cách giải thích mang tính từ thiện hơn là nó chỉ đơn giản là kết quả của việc áp dụng quá mức tính nhất quán không phù hợp và một ví dụ khác về cách nói uyển ngữ của Emersons rằng:

Một sự kiên định ngu ngốc là hobgoblin của những bộ óc nhỏ bé,
được các chính khách và triết gia nhỏ bé yêu mến và những kẻ chia rẽ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với máy chủ SQL với xác thực Windows từ máy Linux thông qua JDBC

  2. Chuyển đổi ‘time’ thành ‘datetimeoffset’ trong SQL Server (Ví dụ T-SQL)

  3. Bạn nên chọn kiểu dữ liệu MONEY hay DECIMAL (x, y) trong SQL Server?

  4. T-SQL - Chèn dữ liệu vào Bảng cha và Bảng con

  5. Khám phá Nguyên nhân &Giải pháp Lỗi Cơ sở dữ liệu Máy chủ SQL