PDA

View Full Version : شماره ردیف در sql



negar_programmer
شنبه 14 بهمن 1385, 10:30 صبح
من می خوام بدونم چه جور می شه برنامه ای داشته باشم با vb.net و mssql که در جدول sql شماره ردیف داشته باشم و کاربر با پاک کردن یک ردیف شماره های جدول دوباره مرتب بشن حتی اگه یک ردیف میانی پاک بشه؟

zerobit-ltd
شنبه 14 بهمن 1385, 11:28 صبح
شما باید بعد از هر delete از جدولتون، تمام شماره ردیفها رو از اول update کنید.
یا یه کار بهتر اینه که از شماره ردیف تمام رکوردهای بعد از رکورد حذف شده، 1 واحد کم کنید.
جسارتا این کار زیاد معنی نداره، دلیل خاصی برای انجام این کار دارید؟

programmermp
شنبه 14 بهمن 1385, 11:37 صبح
شما باید بعد از هر delete از جدولتون، تمام شماره ردیفها رو از اول update کنید.
یا یه کار بهتر اینه که از شماره ردیف تمام رکوردهای بعد از رکورد حذف شده، 1 واحد کم کنید.
جسارتا این کار زیاد معنی نداره، دلیل خاصی برای انجام این کار دارید؟

سلام

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

رکوردها به ترتیب 1 تا 5 باشه اونقت اگه رکورد 3 رو حذف کنه دیگه رکورد جدید با شماره 3 ایجاد

نمی شه بلکه با شماره 6 ایجاد می شه فکر کنم می خواهند این مشکل رو حل کنند

توی بانک اکسس اگه فیلدی رو از نوع autonumber انتخاب می کردید دقیقا همین اتفاق می افتاد

حالا من توی sql server امتحان نکردم ولی فکر کنم توی sql server هم همین اتفاق می افته

چون خاصیت autonumber همین هست

zerobit-ltd
شنبه 14 بهمن 1385, 11:41 صبح
منظورشون اگه اشتباه نکنم این هست که اگه کاربر 5 رکورد به ترتیب وارد کرده باشه و شماره
رکوردها به ترتیب 1 تا 5 باشه اونقت اگه رکورد 3 رو حذف کنه دیگه رکورد جدید با شماره 3 ایجاد
نمی شه بلکه با شماره 6 ایجاد می شه فکر کنم می خواهند این مشکل رو حل کنند

دقیقا من هم یه همچین استنباطی داشتم.



حالا من توی sql server امتحان نکردم ولی فکر کنم توی sql server هم همین اتفاق می افته
چون خاصیت autonumber همین هست

توی sql server این کار انجام نمیشه. یعنی رکورد جدید شماره 6 رو می گیره.

negar_programmer
شنبه 14 بهمن 1385, 11:48 صبح
با سلام مجدد
اینم توضیح کامل:
ببینین من یه database با دو فیلد id و name دارم فیلد id اون auto number هست
خوب حالا فرض کنید 5 ردیف داده دارم با id یک تا 5 ردیف 3 را کاربر پاک می کنه من می خوام
id از 1 تا 4 اتوماتیک مرتب بشه
1.علی
2.رضا
3.حسن
4.حسین
5.محمد
با حذف شماره 3 داشته باشم:
1.علی
2.رضا
3.حسین
4.محمد

titbasoft
شنبه 14 بهمن 1385, 12:34 عصر
عبارت ردیف رو در تالار SQL Server جستجو کنید. ضمنا SQL Server 2005 این امکان رو بطور مستقیم بوجود اورده

DonetKarvb
شنبه 14 بهمن 1385, 13:30 عصر
با سلام مجدد
اینم توضیح کامل:
ببینین من یه database با دو فیلد id و name دارم فیلد id اون auto number هست
خوب حالا فرض کنید 5 ردیف داده دارم با id یک تا 5 ردیف 3 را کاربر پاک می کنه من می خوام
id از 1 تا 4 اتوماتیک مرتب بشه
1.علی
2.رضا
3.حسن
4.حسین
5.محمد
با حذف شماره 3 داشته باشم:
1.علی
2.رضا
3.حسین
4.محمد
شما یک فیلد اتو نامبر دارید و این به شما کمک میکنه که بتونید رنک مطمئنی رو ایجاد کنید. بهتره که از یک کوئری برای اینکار استفاده کنید.

Select row_Number() Over (order by idFilld), Other Filds...
From Tablename