PDA

نسخه کامل مشاهده نسخه کامل : مشکل در INSERTدادهها



Darya-eng
28-05-2011, 14:35
سلام
من TABLEهامو ساختم الان میخوام اطلاعات رو وارد کنم ولی با اینکه من نوع داده ها و تعداد کاراکترها رو رعایت میکنم واز اولین TABLE یکه ساخته شده دارم اطلاعات رو وارد میکنم تا برای FORIEGN KEY ها مشکلی پیش نیاد اما ارور میده وکنار هر مقداری که وارد میکنم یه دایره قرمز میذاره
با کد هم امتحان کردم ولی نشد



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
چیکار کنم؟
خیلی عجله دارم
ممنون میشم راهنمایی کنید

Open-Source
29-05-2011, 18:07
یه کوئری برا Insert بنویس ببین چه پیغامی میده بعد بزار اینجا.

Darya-eng
30-05-2011, 10:47
سلام
ممنون از توجهتون
اون مشکل حل شد اما الان توی یه جدول که کیلیدش identity تعریف شده اینطوری:


Doctor_ID int Identity(1,1),

اولین مقدارش به جای یک سه وبعدش 5 هست یعنی نه از یک شروع کردهو نه یکی یکی اضافه میکنه؟چرا؟

*Batman*
31-05-2011, 00:09
سلام.


اولین مقدارش به جای یک سه وبعدش 5 هست یعنی نه از یک شروع کردهو نه یکی یکی اضافه میکنه؟چرا؟
شما رکورد حذف کردید.ولی مقدار identity حفظ میشه و باید هم اینطور باشه.
از شماره‌ی آخرین رکورد حذف شده یکی یکی اضافه میشه.
============================================

چاره کار اینه که از دستور DBCC CHECKIDENT استفاده کنید و از اول شروع کنید(از صفر)
پارامتر اول : نام جدول
پارامتر دوم :دستور RESEED برای اینکه شماره گذاری از نو انجام بشه.
پارامتر سوم : مقدار شروع


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدنکته بسیار مهم:
جدول شما باید حداقل یک رکورد داشته باشد تا دستور فوق به درستی اعمال گردد.(جدول نباید خالی باشد)

در استفاده از این دستور دقت کنید. احتمال تولید خطا هنگام مواجهه با مقادیر تکراری وجود داره و میتونه دردسر ساز بشه.

Darya-eng
31-05-2011, 01:08
سلام.
شما رکورد حذف کردید.ولی مقدار identity حفظ میشه و باید هم اینطور باشه.
از شماره‌ی آخرین رکورد حذف شده یکی یکی اضافه میشه.
============================================

چاره کار اینه که از دستور DBCC CHECKIDENT استفاده کنید و از اول شروع کنید(از صفر)
پارامتر اول : نام جدول
پارامتر دوم :دستور RESEED برای اینکه شماره گذاری از نو انجام بشه.
پارامتر سوم : مقدار شروع


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدنکته بسیار مهم:
جدول شما باید حداقل یک رکورد داشته باشد تا دستور فوق به درستی اعمال گردد.(جدول نباید خالی باشد)

در استفاده از این دستور دقت کنید. احتمال تولید خطا هنگام مواجهه با مقادیر تکراری وجود داره و میتونه دردسر ساز بشه.
درسته دقیقا همینطوره که شما فرمودید
من اینطور متوجه شدم که:
اگر رکورد 1و2 و3داشته باشیم سپس 3 رو پاک کنیم اگر رکور ایجاد کنیم رکورد صفر ایجاد میشود ؟
ولی من میخوام یکی از قبلیش بیشر باشه:20:
اخه این ستون که identityشده کلید اصلیه ونباید مقادیرش تکراری باشه پس ریست شدن به مقدار خاصی دراین مورد کاربرد نداره
چیکارکنم؟

*Batman*
31-05-2011, 12:36
اگر رکورد 1و2 و3داشته باشیم سپس 3 رو پاک کنیم اگر رکور ایجاد کنیم رکورد صفر ایجاد میشود ؟
ولی من میخوام یکی از قبلیش بیشر باشه[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگر از دستور بالا استفاده کنیم،رکورد بعدی ما 1 هستش(0+1) که چون قبلا پر شده با خطا مواجه میشیم.
چنانچه شما رکورد سوم رو پاک کنید،شماره‌ی رکورد بعدی 4 خواهد بود.
اگر میخواهید جای رکوردهای خالی رو پر کنید(مثلا رکورد سوم) باید براش برنامه بنویسید.
در لینک زیر یه راهکار برای حذف فاصله ها ارائه شده :


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

موفق باشید.