Chỉ là một ý tưởng, nếu bạn có 2 cột "danh tính", thì chắc chắn chúng sẽ 'đồng bộ hóa' - nếu không chính xác cùng một giá trị, thì sẽ khác nhau bởi một giá trị không đổi. Nếu vậy, tại sao không thêm cột "danh tính thứ hai" làm COMPUTED
cột
, cái nào bù đắp danh tính chính? Hay logic của tôi có sai sót ở đây?
Chỉnh sửa:Theo nhận xét của Martin, hãy lưu ý rằng calc của bạn có thể cần phải là N * id + C, trong đó N là Phần tăng và C là phần bù / delta - thứ lỗi cho những phép toán thiếu sót của tôi.
Ví dụ:
ALTER TABLE MyTable ADD OtherIdentity AS Id * 2 + 1;
Chỉnh sửa Lưu ý rằng đối với Sql 2012 trở lên, bây giờ bạn có thể sử dụng trình tự độc lập để tạo hai hoặc nhiều cột tăng dần độc lập trong cùng một bảng.
Lưu ý :OP đã chỉnh sửa yêu cầu ban đầu để bao gồm các trình tự xác nhận lại (lưu ý rằng các cột nhận dạng trong SQL không lấy lại các ID đã sử dụng sau khi bị xóa).