Khi đó, bạn không muốn sử dụng cột tăng tự động. Nếu bạn muốn lấp đầy khoảng trống, hãy đặt nó thành cột int và xử lý logic trong proc hoặc insert được lưu trữ.
CHỈNH SỬA:
Vì đó là một cột int, bạn có thể sắp xếp chúng bằng số. Chỉ cần thực hiện SELECT Ids FROM Table Order By Ids
để lấy tất cả các Id và kiểm tra các lỗ hổng trong tập dữ liệu được trả về.
Có thể có một cách trơn tru hơn để thực hiện việc này, nhưng bạn có thể lặp lại các kết quả bằng con trỏ và so sánh với một INT
biến tăng trong suốt vòng lặp. Khi bạn tìm thấy một khoảng trống (không khớp) - hãy ngắt vòng lặp và sử dụng INT
đó giá trị như INSERT
của bạn Tôi.
Tôi sẽ không viết mã cho bạn, nhưng đó là một số bước giúp bạn đi đúng hướng. Nó phải là một chút cơ bản của lập trình mà bạn có thể xử lý.
Hy vọng điều này sẽ hữu ích.
CHỈNH SỬA # 2:
Như những người khác đã lưu ý, động thái tốt nhất của bạn là chỉ cần để lại những khoảng trống. Trừ khi có một số giới hạn trên bàn theo chiều dài và id PHẢI là 1-30 (kỳ lạ), hãy để nó một mình. Không có lợi ích gì khi lấp đầy khoảng trống.
CHỈNH SỬA # 3:
Một điều nữa cần xem xét:nếu bạn thực sự phải giữ 1-30 vì lý do nào đó, đừng xóa các hàng của bạn. Thêm một cột để gắn cờ từng hàng là hoạt động hay không, sau đó chỉ cần cập nhật các hàng không hoạt động khi bạn cần và sau đó gắn cờ chúng là hoạt động. Đây là RẤT hacky, nhưng yêu cầu của bạn hơi khó, vì vậy ...