SORU
11 Kasım 2008, Salı


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
11 Kasım 2008, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GWTLecturer

    GWTLecturer

    18 EKİM 2012
  • Jejoab

    Jejoab

    4 NİSAN 2008
  • SignatureSeries

    SignatureSer

    24 Aralık 2006