29 Ekim 2010 Cuma

DBCC CHECKIDENT

 DBCC CHECKIDENT (table_name, NORESEED | RESEED, [new_reseed_value])

 DBCC CHECKIDENT ('myTableName',NORESEED)  şeklinde çalıştırılsa, ilgili tablonun  mevcut ve en yüksek identity değerini getirir.   Eğer hatalı insert nedeniyle identity alanının değeri artmış, ancak tabloya yazılmamışsa bu tarz durumlar olabilir. Bu durumda DBCC CHECKIDENT, reseed parametresi ile çağrılarak, identity alanı istenilen değere geri çekilebilir.

DBCC CHECKIDENT ('myTableName',RESEED, 50)   ile identity değeri 50 ye alınır, bundan sonra oluşacak identity değerleri 51 den başlar.

DBCC CHECKIDENT ('myTableName',RESEED) ise mevcut identity değerini maximum identity değeri ile eşitler. 

İçinde identity alanı olan bir tablonun içindeki tüm kayıtları sildiğinizde identity alanı sıfırlanmaz. Sıfırlanması için truncate table kullanabilirsiniz ancak tablo üzerinde foreign key ler tanımlı ise, truncate table kodu çalışmaz. Bu durumda tablodaki kayıtları sildikten sonra reseed ile identity alanını baştan başlatabilirsiniz.

Hiç yorum yok: