ورود

View Full Version : مرتب شدن اعداد در کلید اصلی



enekas
دوشنبه 30 آذر 1394, 16:24 عصر
سلام
یه پایگاه داده دارم که کلید اصلی اون بصورت اتومات از یک شروع میشه
و با اضافه کردن هر رکورد در برنامه یکی اضافه میکنه
مثلا
1 حسین رحمتی
2 ایمان صالحی
3 رضا یزدانی
4 احمد اسماعیلی

اسم و فامیل را در برنامه ما ثبت میکنیم اما عدد که کلید اصلی است خود ِ اس کیو ال وارد میکنه اتوماتیک وار ..

سوال من اینه
آیا در اس کیو ال این امکان وجود داره که مثلا ما گزینه 2 را که حذف کردیم در برنامه " ایمان صالحی "
بصورت خودکار اعداد یکی بیان بالاتر
یعنی بشه

1 حسین رحمتی
2 رضا یزدانی
3 احمد اسماعیلی

برنامه با سی شارپ نوشته شده است
ممنونم

خواهشا مدیر سوال را پاک نکنه من هر جا گشتم جوابش را ندیدم

abdullah20
سه شنبه 01 دی 1394, 18:55 عصر
شدن که میشه ولی به دردسرش نمی ارزه دوست عزیز

looklook
چهارشنبه 02 دی 1394, 00:35 صبح
سلام. به قول دوست بزرگوارمون ارزشش رو نداره. ولی اگر می خواهین بدونین چطوری می شه یک نگاهی به لین زیر بندازین بد نیست:

http://www.forum.a00b.com/showthread.php?tid=25&pid=48#pid48

حمیدرضاصادقیان
چهارشنبه 02 دی 1394, 10:30 صبح
با سلام.
شما باید ابتدا Update کردن Identity رو غیر فعال کنید و اونو میتونید توسط ایجاد یک Row_Number نیز Update کنید و بعداز update مجدد اونو ON کنید.
ولی بهتره مثلا فیلد ID به این کلید وابسته نباشه و کاری با مقدار این نداشته باشید و یک فیلد جداگانه برای ID داشته باشید که بروز کردن اون راحتتر باشه و نیازی نباشه این تغییرات رو بدید. چون بروز کردن این کلید باعث میشه شما در جداولی که از این کلید استفاده کردید این تغییرات رو بدید یا مثلا Trigger بنویسید یا در یک Transaction اینکارو بکنید یا اینکه توسط خود foreign key هایی که ایجاد کردید گزینه Cascade Update رو انتخاب کنید که این مقدار در جداول وابسته نیز بروز بشه. ولی به شدت اثر منفی روی Performance نرم افزار شما در تعداد بالا خواهد داشت.

pswin.pooya
چهارشنبه 02 دی 1394, 14:01 عصر
ریست کردن کلید می تونه خیلی خیلی اشتباه باشه. فرض کنید زمانی که می خوایین کلید رو ریست کنید یکی یه دستور ساده می کنه و می گه برای کاربر ۴ یه رکورد داخل یه جدول دیگه ثبت کن. خب حالا یا بعد از ریست کاربر ۴ وجود نداره و یا اینکه یکی دیگه هستش و یه دیتای اشتباه ثبت می شه.

abdullah20
چهارشنبه 02 دی 1394, 16:28 عصر
نکته دیگه ای هم که هست اینکه اگر شما این شماره ردیف ها را بخواید تغییر بدید و تغییر شماره هر ردیف فرقی نداره اصلا چرا همچین فیلدی گذاشتید؟
تنها دلیلش هم شمارش ردیف ها شاید باشه که به نظرم شاید نیاز هم نباشه