En iyi yanıtlayıcılar
id sıra atlaması

Soru
-
Yanıtlar
-
Merhabalar
normal primary key tanımladığım id (int + identity column) olan kolonu her nedense şöyle gidiyor
38
39
42
43
1042
2042
2043
3042sebebi nedir? (aradaki değerler herhangi bir şekilde işleme alınmadı (eklenip silinme vs)
Special
Aslında bu Sql Server 2012 ve sonrasında gelen bir özellik,
Sql Serverı ShutDown ile kapatmazsan veri bütünlüğü için sıra numarası atlıyor. bilgisayarı kapatman senin sql servırı düzgün kapattığın anlamına gelmiyor aslında serverın fişini çekiyor gibi oluyorsun. Sen pcyi yeniden başlattığında cachte bulunan veri bütünlüğü için sıra numarası atlanıyor.
Ayrınıtılı bilgi ve bu özelliği devre dışı bırakmak için şu makaleye göz atabilirsin Link
AMA unutma senin için önemli olan numaranın sıralı değil benzersiz olmasıdır. Tekrar ediyorum amaç artan bir sıra değil benzersiz bir key.
- Yanıt Olarak Öneren Ekrem Önsoy 4 Eylül 2017 Pazartesi 10:22
- Yanıt Olarak İşaretleyen Ekrem Önsoy 29 Aralık 2017 Cuma 09:15
-
Merhaba dark-shadow,
SQL Server 2012'den itibaren eğer Database Engine servisi temiz olmayan bir şekilde kapatılırsa (örnek: SHUTDOWN WITH NOWAIT) o zaman böyle bir sonuç ile karşılaşabilirsin. Bunun nedeni SQL Server 2012 ile birlikte gelen Identity değer üretimindeki bir davranış değişikliği. SQL Server 2012 ile birlikte Identity üretiminin verimini arttırmak için bir Cache mekanizması devreye alındı. Bu mekanizmayı kapatmak için Startup Parameter olarak -T272'yi kullanabilirsin veya SQL Server 2017 ile birlikte gelen aşağıdaki komutu (ilgili veritabanı için) kullanabilirsin.
ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF
http://ekremonsoy.blogspot.com | http://www.ekremonsoy.com | @EkremOnsoy
- Yanıt Olarak İşaretleyen Ekrem Önsoy 29 Aralık 2017 Cuma 09:15
Tüm Yanıtlar
-
Başka Oluşturduğun Veritabanları Kullanıyor Olabilir.. Kullandığın Ya Da Senin Üzerinde Çalıştığın Başka Programlar Varsa Onlar Kullanıyordur Büyük İhtimal.. Çünkü Aynı Sorun Bende De Mevcuttu.. Kontrol Ettiğim Zaman Senin Bilgisayarına Yüklü Diğer Veritabanlarıyla Çakışmaması İçin Sql Kendi Ayarlıyor..
-
-
-
Merhabalar,
Identity kullanıyorsanız ve SET IDENTITY INSERT ile ayrıca kayıt atarsanız olabilecek bir durum bu. Ancak SET IDENTITY INSERT kapalı olmasına rağmen oluyorsa bu sunucudaki identity değerinin çakışmaması için olabilecek nadir bir durum. Microsoft bunun açıklamasını oluşabilecek bir conflict olmaması için by design olarak açıklamış. Çok sık başınıza gelmiyorsa bir problem oluşturmayacaktır.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
www.abdullahaltintas.com- Yanıt Olarak Öneren Gürkan ALAVANDA 25 Ağustos 2017 Cuma 19:13
-
Merhabalar
normal primary key tanımladığım id (int + identity column) olan kolonu her nedense şöyle gidiyor
38
39
42
43
1042
2042
2043
3042sebebi nedir? (aradaki değerler herhangi bir şekilde işleme alınmadı (eklenip silinme vs)
Special
Aslında bu Sql Server 2012 ve sonrasında gelen bir özellik,
Sql Serverı ShutDown ile kapatmazsan veri bütünlüğü için sıra numarası atlıyor. bilgisayarı kapatman senin sql servırı düzgün kapattığın anlamına gelmiyor aslında serverın fişini çekiyor gibi oluyorsun. Sen pcyi yeniden başlattığında cachte bulunan veri bütünlüğü için sıra numarası atlanıyor.
Ayrınıtılı bilgi ve bu özelliği devre dışı bırakmak için şu makaleye göz atabilirsin Link
AMA unutma senin için önemli olan numaranın sıralı değil benzersiz olmasıdır. Tekrar ediyorum amaç artan bir sıra değil benzersiz bir key.
- Yanıt Olarak Öneren Ekrem Önsoy 4 Eylül 2017 Pazartesi 10:22
- Yanıt Olarak İşaretleyen Ekrem Önsoy 29 Aralık 2017 Cuma 09:15
-
SElam,
<header class="entry-header" style="box-sizing:inherit;color:#727272;font-family:Roboto, sans-serif;font-size:14px;">IDENTITY ALANI SIFIRLAMA VEYA FARKLI BİR DEĞERE SET ETME
https://sqlturkiye.com/identity-alani-sifirlama-veya-farkli-bir-degere-set-etme/
</header>SQL Server üzerine bir çok merak ettiğin detay, SQLTURKIYE Data Platformundan öğrenebilirsin.
Makaleler,SQL TV, E-Book gibi bir çok içeriğe erişme şansın bulunmakta.
www.sqlturkiye.com
-
Merhaba dark-shadow,
SQL Server 2012'den itibaren eğer Database Engine servisi temiz olmayan bir şekilde kapatılırsa (örnek: SHUTDOWN WITH NOWAIT) o zaman böyle bir sonuç ile karşılaşabilirsin. Bunun nedeni SQL Server 2012 ile birlikte gelen Identity değer üretimindeki bir davranış değişikliği. SQL Server 2012 ile birlikte Identity üretiminin verimini arttırmak için bir Cache mekanizması devreye alındı. Bu mekanizmayı kapatmak için Startup Parameter olarak -T272'yi kullanabilirsin veya SQL Server 2017 ile birlikte gelen aşağıdaki komutu (ilgili veritabanı için) kullanabilirsin.
ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF
http://ekremonsoy.blogspot.com | http://www.ekremonsoy.com | @EkremOnsoy
- Yanıt Olarak İşaretleyen Ekrem Önsoy 29 Aralık 2017 Cuma 09:15