PDA

View Full Version : مشکل در پرش ID در Sql2012



nkhozooii
شنبه 07 آذر 1394, 19:40 عصر
سلام. در ثبت اطلاعات در بانک بدون اینکه برنامه مشکلی داشته باشه، فیلد ID که autonumber است به صورت غیر منتظره ای تغییر مقدار می دهد. مثلا در جدول مستر من، شماره های ID به ترتیب عبارتند از: 9 - 10 - 1009 - 1010 و یا در جدول دیگرم شماره ها: 17 - 18 - 19 - 10017 - 10018و...
نمی دونم دلیلش چیه و چطور می تونم برطرف کنم. در سایت stackoverflow هم سرچ زدم می گفت به دلیل ریست شدن بانک هست که بانک من ریست نمی شه. و یه sp داده بود که روی بانک Master باید اجرا می شد که متاسفانه نتیجه نگرفتم.
از راهنمایی تون بی نهایت سپاسگذارم.

En_MK
دوشنبه 09 آذر 1394, 14:02 عصر
خوب ممکنه یه اروری دارید که در شرایط خاص رخ میره بعد اطلاعات ذخیره نمیشه وباعث میشه id زیاد بشه بعد از جور دیگه که برنامه رو اجرا میکنید و سیو میشه میبینید id اینطوری میشه
وگرنه اگر identityباشه وincreamentش برابر یک باشه یه دونه یه دونه زیاد میشه

reza_ali202000
سه شنبه 10 آذر 1394, 00:06 صبح
سلام
یه تست روی یه سیستم دیگه هم بزنید ببینید اونجا هم اونجوری هست.
اگه نبود با خیال راحت برنامتون رو بنویسید و بدونید که چیزی که رایتی هست بهتر از این نمیشه.
ولی اگه بازم بود برنامه رو خط به خط کامپایل کنید تا مشکل رو پیدا کنید.
بنظرم یه دستوری توی یه تایمر جا مونده که پاک کنید برا همین اینجوری میشه.

N_D
سه شنبه 10 آذر 1394, 09:20 صبح
Auto increament ها فقط جلو رونده هستند بنابراین با حذف رکود شمارنده به عقب بر نمی گردد بعنوان مثال اگر داده های ورودی بصورت زیر باشند
1-2-3-4-5-6-7-8-9 و شما دستور delete T1 where id>=7 را صادر کرده باشید آنگاه در هنگام درج بعدی عدد مورد نظر 10 خواهد بود نه 7.

esagraphic
دوشنبه 16 فروردین 1395, 03:16 صبح
با سلام
این مشکل در هنگام ریست شدن سرویس پایگاه داده به وجود می آید و مقدار Identity بسته به نوع دیتا تایپ ممکن هست 10000 یا 1000 واحد نسبت به آخرین مقدار افزایش یابد.
این مشکل در MSSQL2012 وجود دارد و برای حل این مشکل می توانید راه کار ارائه شده در سایت
http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is
را دنبال کنید.
با تشکر

با سلام من دقیقا چنین مشکلی دارم تو سیستم یکی از مشتری هایم از عدد ۱۳ رفته به عدد ۱۰۱۳ بعد ۱۰۱۴ به بالا من روی سیستم مشتری sql server configuration manager هم ندارم تنها یک sql express local db نصب دارم تمام لطفا رهنمای کنید چه کنم با سی شارپ و دیتابیس خود سی شارپ نوشتم تا جای که یادمه یه بار به sql server 2012 هم انتقال دادم دیتابیس را و یه سری تغیرات اوردم راه حل چیه روی سیستم های مشتریان چیجوری درستش کنم ممنون میشم رهنمای کنید