ورود

نسخه کامل مشاهده نسخه کامل : مشکل با identity



MohammadJavad.T
05-08-2013, 01:15
سلام به همه دوستان

یه سوال داشتم اگه جواب بدین ممنون میشم

چند وقت پیش برای یه شرکتی برنامه تحت شبکه نوشتم , برنامه بدون هیچ مشکلی کار میکرد تا این که چند روز پیش اپراتور های اونجا

به من خبر دادن که داده ها INSERT نمیشن .

خطای که موقع INSERT کردن داده ها میده خیلی عجیب .

Violation of PRIMARY KEY constraint Cannot insert duplicate key in object

این در حالی که فیلد ID این جدول من identity ش روشن هست و به صورت اتوماتیک برای هر رکورد جدید مقدار جدید تولید میکنه . و اصلا و قاعدتا نباید فیلد مقدار تکراری بگیره که با همچین خطای

مواجه شم .

دوستان اگه راهنمای کنن که باید چیکار کنم ممنون میشم

shotok
05-08-2013, 04:01
بسم الله الرحمن الرحیم
با سلام
شاید نوع مناسبی برای فیلدتون در نظر پیش بینی نکرده بودید و ظرفیت رکوردهاتون تکمیل شده است؛ نوع فیلدتون رو بزرگتر کنید.
موفق باشید.

MohammadJavad.T
05-08-2013, 04:52
ممنون از این که به تاپیک بنده توجه کردین .

از نوع INT انتخاب کرده بودم . رویه numeric ست کنم ؟

JhCo
05-08-2013, 19:21
bigint...
البته محدوده int تا 2,147,483,647 هم هست،اینقدر اینزرت دارن اپراتورا؟.

MohammadJavad.T
05-08-2013, 23:24
bigint...
البته محدوده int تا 2,147,483,647 هم هست،اینقدر اینزرت دارن اپراتورا؟.

سلام ممنون از پاسخ

8 تا کلاینت هست 1 کی هم سرور که روش بنا به دلایلی vmware نصب کردم و SQL SERVER رو داخل vmware نصب کردم .

خیر تا این حد INSERT ندارن.

JhCo
06-08-2013, 14:30
سلام ممنون از پاسخ

8 تا کلاینت هست 1 کی هم سرور که روش بنا به دلایلی vmware نصب کردم و SQL SERVER رو داخل vmware نصب کردم .

خیر تا این حد INSERT ندارن.

خب شاید اپراتورها اشتباه کردن (مثلا بجای آپدیت دارن اینزرت می کنن).
شاید هم تو کد نویسی اشتباه کردی(مثلا رکوردی که باید پاک میشده نشده..)
در ضمن وقتی یک رکورد پاک بشه،شماره identity کم نمیشه،(البته درست نمی دونم ولی مجموع داده های پاک کرده و اینزرت شده مهم است-البته اگر identity رو ریست نمی کنی)

MohammadJavad.T
09-08-2013, 03:00
شاید هم تو کد نویسی اشتباه کردی(مثلا رکوردی که باید پاک میشده نشده..)
وقتی رکوردی رو حذف میکنم داخل DB چک کردم همون رکورد حذف میشه ...


در ضمن وقتی یک رکورد پاک بشه،شماره identity کم نمیشه،(البته درست نمی دونم ولی مجموع داده های پاک کرده و اینزرت شده مهم است-البته اگر identity رو ریست نمی کنی)
بنده چند روز پیش یه اپدیت کوچیکی برنامه رو کردم برای این که ID ریست شه و از 1 شروع کنه به خاطره همین از کوری زیر بعد از دستور DELETE استفاده کردم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MohammadJavad.T
17-08-2013, 12:25
سلام مشکل از reseed بود که انتهای کوری گذاشته بودم . حل شد