PDA

نسخه کامل مشاهده نسخه کامل : كدي از نوع IDENTITY‌



hobab1987
24-09-2010, 09:37
سلام دوستان

IDENTITY‌ به صورت خودكار عدد توليد ميكنه و يك مشكلي كه هست اينه كه بعد از حذف يك سطر در DataGridView ، يك شماره از عددي كه IDENTITY‌ مي باشد كم نميشود و بعد از ثبت از همان شماره شروع بع اضافه شدن مي كند.
اين جوري براي اطلاعات زياد كه ثبت و حذف مي شوند مشكلي پيش نمي آيد؟؟
حالا اگر نخواهيم به اين صورت نباشد (بعد از حذ هم يك واحد از IDENTITY‌ كم شود) چه كار كنم؟

L u K e !
24-09-2010, 11:37
زیاد به این چیزا توجه نکن
این قدر هم ضعیف نیست Sql
ولی می تونی خودت دستی این کارو کنی که این مشکلو نداشته باشی ولی کد نویسیت زیاد می شه
می تونی یه query با این دستور اجرا کنی Select Max(Your KeyField) from YourTabl مقدار برگشتی این کوئری بیشترین مقدار کلید ای دی در جدولتونه و می تونی +1 َش کنی و توی اینسرت ازش استفاده کنی

pezhmax
24-09-2010, 18:40
من هیشه به جای IDENTITY عددی خودکار از uniqueidentifier استفاده میکنم. البته اگه بر اساس IDENTITY جدول رو sort میکنی، یه کم مشکل ایجاد میکنه. من برای حل این مشکل یه فیلد تاریخ هم اضافه میکنم.
البته این کار برای جداول با داده های کم برتری خودش رو نشون نمیده ولی برای تعداد رکوردهای بالا خیلی خوبه. در ضمن گگهداری و انتقال دیتابیس با این نوع داده ای هم خیل بهتر عمل میکنه. نیاز به کدنویس و کنترل داده هم نداره فقط کافیه تو Default value تابع newid() رو درج کنید.