SQL Kimlik (Otomatik Sayı) bir Hareketi geri alma Bile Artırılır
Bir ben var .MS SQL için SQL ınsert 2005 DB ile net işlem. Tablo kimliği birincil anahtar vardır.
Bir hata içinde hareket oluştuğunda geri alma() denir. Bir satır ekler doğru geri alınır, ancak bir dahaki sefere ben tabloya veri eklemek için, çevrimiçi bir geri alma asla oluştuysa olarak artırılır. Yani esasen orada kimlik dizideki boşlukları. Geri alma için herhangi bir şekilde() yöntemi kaybolan kimliğini geri?
YaklaÅŸan bu doÄŸru deÄŸil miyim?
CEVAP
Eğer düşünürsen, otomatik artan sayıolmamalıdırişlem olabilir. Eğer diğer işlemleri beklemek eğer Otomatik Sayı kullanılmak üzere gittiğini görmek için olsaydı ya da "geri", mevcut işlem kullanarak bloke olacaktır otomatik numara. Örneğin, psuedo benim kod aşağıda tablo KİMLİK sütun için otomatik numara alanı kullanarak göz önünde bulundurun:
User 1
------------
begin transaction
insert into A ...
insert into B ...
update C ...
insert into D ...
commit
User 2
-----------
begin transaction
insert into A ...
insert into B ...
commit
Eğer kullanıcı 2 işlem başlar bir milisaniye sonra kullanıcı 1, sonra onların içine sokun Bir tablo olurdu beklemen kullanıcı 1 tüm işlem tamamlandığında sadece görmek için otomatik numara ilk ınsert ınto kullanılmıştır.
Bu bir özellik, bir hata değil. Eğer onları sıkıca sıralı olmak gerekir eğer Otomatik Sayı üretmek için bir diğer yöntem kullanarak öneriyoruz.
Veya geri alma bir okuma hareketi tama...
Geri alma gıt sanatçı bir hata...
Alma istemi tümleşik windows kimlik do...
Bir veritabanına tüm bağlantıları öldü...
Nasıl kaydırma hareketi geri devre dış...