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

Tìm bản ghi được chèn lần cuối MS SQL SERVER

Theo yêu cầu nhận xét ở đây, một giải pháp thủ công nhanh chóng và bẩn thỉu, giả sử bạn đã có danh sách INSERT câu lệnh (hoặc dữ liệu theo) theo trình tự giống như INSERT đã phát hành S. Đối với ví dụ này, tôi giả sử 1 triệu bản ghi.

INSERT ... VALUES (1, ...)
...
INSERT ... VALUES (250000, ...)
...
INSERT ... VALUES (500000, ...)
...
INSERT ... VALUES (750000, ...)
...
INSERT ... VALUES (1000000, ...)

Bạn chỉ cần tìm PK cuối cùng, đã được chèn. May mắn thay trong trường hợp này có một. Vì vậy, bạn bắt đầu thực hiện tìm kiếm nhị phân thủ công trong bảng phát hành

SELECT pk FROM myTable WHERE pk = 500000

Nếu bạn nhận được một hàng trở lại, bạn biết nó đã có cho đến nay. Tiếp tục kiểm tra với pk = 750000 . Sau đó, một lần nữa, nếu nó ở đó với pk = 875000 . Nếu 750000 không có ở đó, thì INSERT s chắc đã dừng lại sớm hơn. Sau đó, kiểm tra pk = 675000 . Trong trường hợp này, quá trình này sẽ dừng lại sau 20 bước.

Đó chỉ là sự phân chia và chinh phục thủ công.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Từ đồng nghĩa thay thế trong SQL Server trong một giao dịch

  2. Phân tích cú pháp XML - Ký tự XML không hợp lệ (khi thực thi thủ tục được lưu trữ, việc chạy các truy vấn thủ tục không dẫn đến lỗi)

  3. Đặt trống trong cột máy chủ sql với kiểu dữ liệu số nguyên

  4. Chọn 10 bản ghi hàng đầu cho mỗi danh mục

  5. Chọn dữ liệu thông qua một chức năng được định giá bằng bảng trong SQL Server