PDA

View Full Version : مرتب سازی



MAZAHER70
دوشنبه 03 بهمن 1390, 16:18 عصر
سلام .
کسی می دونه که یه فیلد از نوع identity که چندین عمل delete صورت گرفته رو دوباره مرتب کنم.
مثلا فیلد identity از 1 تا 10 باشه با حذف فیلد 4و5 ، از 1 تا 8 باشه.
ممنون میشم اگه جواب بدید.

Galawij
دوشنبه 03 بهمن 1390, 17:40 عصر
سلام،
پست 4 این لینک (http://barnamenevis.org/showthread.php?321844-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF-%D8%AA%D8%A7%D8%A8%D8%B9-%D9%87%D8%A7%DB%8C%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-identity) را نگاه کنید و کدش را روی جدولتون اجرا کنید، لیست ID های حذف شده آن جدول را می دهد. برای set کردن مجدد فیلد identity هم پست شماره 5 این لینک (http://barnamenevis.org/showthread.php?297602-%DA%86%D9%86%D8%AF-%D8%B3%D9%88%D8%A7%D9%84-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-Sql-server&highlight=%DA%86%D9%86%D8%AF+%D8%B3%D9%88%D8%A7%D9 %84) را ببینید.

tiphooo
سه شنبه 04 بهمن 1390, 23:38 عصر
اگر می خواهید شماره های حذف شده را دوباره بازیابی کنید پس اصلا چرا Identity استفاده کردید . قطعا شما با این کار در جاهای دیگر به مشکل خواهید خورد مثلا اگر بخواهید بدانید آخرین رکورد وارد شده (البته نه دقیقا بعد از درج و با SCOP_IDENTITY) به هیچ وجه نمی توانید آن را پیدا کنید به نظر من شما فیلد Identity رو بیخیال شو و اگر از این فیلد برای شماره ردیف رکوردها استفاده کردی از فیلد دیگری برای این کار استفاده کن و آن فیلد را هر بلایی هم که سرش بیاوری ترتیب ورود رکوردها به هم نمی ریزد با Shift دادن Identity و یا جایگذاری آن قطعا در آینده به مشکل بر خواهید خورد و اگر به عنوان مثال شما برای جایگزینی مجبور باشید Identity Insert را Off کنید تا بتوانید عدد آن را تغییر دهید اگر همزمان یک کاربر دیگر در شبکه رکوردی را بخواهد در جدول درج کند چون آن فیلد Identity است کاربر دیگر با پیغام خطا روبرو می شود و تا زمانی که شما Identity Insert را On نکنید کس دیگری نمی تواند تحت شبکه در آن جدول اطلاعات درج کند و گرنه راه حل برای جایگزینی بسیار است که بنده از توضیح روشهای غیر معمول و غیر ایمن خودداری می کنم.