PDA

View Full Version : سوال: از بین بردن فاصله بین شماره ID های درون Database



Ship Storm
دوشنبه 06 خرداد 1392, 21:10 عصر
سلام دوستان
چطور میتونم کاری کنم که وقتی یکی از یوزرهام رو پاک میکنم اطلاعاتش رو کاملا از رو بانک اطلاعاتی من هم پاک بشه؟ الان به شکل زیر نگاه کنید :

http://upload.tehran98.com/img1/zjs1n5jtarabyqq9wyr.jpg

ستون ID رو ملاحظه کنید ، اولیش 1 هست و دومیش شده 9
البته این بین 2 و 3 و 4 و5 و ... هم بوده ولی من اون ها رو پاک کردم و الان اگه بخوام این یوزر شماره 9 رو هم پاک کنم وقتی یوزر جدید بسازم ID شماره 10 رو به اون اختصاص میده در صورتی که من میخوام ID شماره 2 رو بده
چکار کنم که فاصه های بین این شماره ها پر بشه ؟

systam
سه شنبه 07 خرداد 1392, 12:05 عصر
سلام
شماره گذاری توسط خود بانکبرنامه sql انجام میشه (که قبلا براش تعریف کردید)
باز هم که شما بیاید اطلاعات روپاک کنید
شماره گذاری فیلد در بانک ذخیره و بر اساس اون اطلاعات شماره گذاری میشه
شما باید به صورت دستی این کار رو انجام بدید
با هم به صورت کد نویسی بیاید تعداد فیلد های جدول مورد نظر رو بدست بیارید و سپس یکی بهش اضافه کنید و در بانک ذخیره کنید


یا علی

abbasrahmati
سه شنبه 07 خرداد 1392, 12:16 عصر
یک کوئری بسازید از نوع max و تعداد ردیف هارو بدست بیارید بعد یکی بهش اضافه کنید

tooraj_azizi_1035
سه شنبه 07 خرداد 1392, 12:46 عصر
باید یک Trigger حساس به DELETE برای جدولتون بسازید که بیاد ID رکورد حذف شده رو بگیره و از خودش به بعد رو یکی کم کنه:


CREATE TRIGGER TriggerONDELETE ON MyTable FOR DELETE
AS
DECLARE @ID int
DECLARE @SEED int

SET @SEED =@@ROWCOUNT

SET @ID = SELECT ID FROM deleted
UPDATE MyTable SET ID=ID-@SEED
WHERE ID> @ID
GO