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

Tôi có nên sử dụng các giao dịch SQL trong khi đọc bản ghi không?

Nếu bạn đang truy vấn tất cả các bản ghi trong một truy vấn và kéo chúng lại trong một lần, thì không cần. Mọi thứ được gói gọn trong một giao dịch ngầm. Có nghĩa là, ngay cả khi bạn lấy lại một triệu bản ghi và ngay cả khi các quy trình khác đang thay đổi bản ghi, bạn sẽ thấy tất cả một triệu bản ghi trông như thế nào tại cùng một thời điểm.

Những lần duy nhất bạn thực sự cần một giao dịch (và thường là một gợi ý khóa cụ thể) trong quy trình chỉ đọc là:
- Bạn đọc các bản ghi "phần ăn" và không cần gì khác để thay đổi các giá trị trong khi bạn itterate mặc dù. [Chẳng hạn như một tập bản ghi được kết nối trong ADO mà sau đó bạn trỏ chuột qua.]
- Bạn đọc một số dữ liệu, thực hiện một số tính toán, sau đó đọc một số dữ liệu liên quan, nhưng trên giả định không có gì thay đổi trong thời gian trung bình.


Tóm lại, bạn cần các giao dịch khi bạn muốn các quy trình khác không can thiệp vào dữ liệu của bạn giữa các câu lệnh SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể đưa ra bao nhiêu ràng buộc cho một cột của bảng trong SQL Server

  2. SET so với SELECT khi gán biến?

  3. Chọn bản ghi đầu tiên

  4. SQL Server CTE bên trái tham gia

  5. PARSE () so với CAST () so với CONVERT () trong SQL Server:Sự khác biệt là gì?