-
مشکل identity با unique
با سلام
من یک جدول با دو فیلد ساختم.
فیلد اول با نام id و از identity و primary key در ان استفاده کردم.
فیلد دوم را با نام name و در ان از unique index استفاده کردم تا داده تکراری نداشته باشد.
حال وقتی که می خواهم داده تکراری در فیلد name بریزم error میده و داده را insert نمیکند(که منطقی هم است) اما با این که داده insert نمیشود اما مقدار فیلد id که identity است زیاد میشود.
به عنوان مثال :
اگر id مقدار 5 را داشته باشد حال اگر ما یک داده تکراری به ان بدیم (که insert هم نمی شود) و بعد یک داده غیر تکراری بدیم مقدار id برابر با 7 می شود که اشتباه است و باید مقدار ان 6 باشد.
چگونه می توانم جلوی این کار را بگیرم.
دوستان اگر کسی جواب این سوال را میداند لطف کند بنویسید.
با تشکر
-
سلام
تو اين تاپيك گفته شده:
[HTML]http://forum.p30world.com/showthread.php?t=442282[/HTML]
-
سلام.
قبل از Insert کردن،آخرین مقداری ID رو بدست بیارید.
بعد که با خطای مقدار تکراری روبرو شدید، مقدار ID رو RESEED کنید به آخرین مقداری که ازش گرفته بودید.
برای مثال :
کد:
SET @MyID = (SELECT MAX(ID) FROM Student)
دستور Insert در اینجا
..............
Try... Catch
کنترل خطا و مقدردهی مجدد:
DBCC CHECKIDENT (Table1 , reseed,@MyID)
بنابراین آخرین ID ما دوباره برمیگرده به 5 و شناسه رکورد بعدی(در صورت تکرار نبودن فیلد مورد نظر) 6 خواهد بود.
موفق باشید.