PDA

View Full Version : سوال: ردیف شدن شماره رکورد ها



viper2009
یک شنبه 05 مهر 1388, 21:55 عصر
سلام دوستان لطفاً راهنمایی کنید
چطور می تونم شماره ردیف هایی بانک وقتی حذف می کنم دوباره شماره ها بترتیب بشوند؟

مثلاً من 10 سطر دارم سطر 5 رو حذف می کنم می خوام اتوماتیک رکورد 6 بشود 5 و جمعاً 9 سطر شود؟

MOJTABAATEFEH
یک شنبه 05 مهر 1388, 22:24 عصر
منم خيلي وقته دنبال اين موضوع هستم

محمد سلیم آبادی
یک شنبه 05 مهر 1388, 22:49 عصر
سلام دوستان،
یعنی شما از ستون Identity استفاده می کنید و هنگامی که از جدولتان select می گیرین می خواهین به صورت مرتب شده به نمایش در بیاید؟

من به شما پیشنهاد نمی کنم که بیایین مقدار ستون Identity را ویرایش کنین. این مقدار سر جای خودش باشد و به جای آن هنگامی که از جدول یک query می گیرین از تابع Row Number استفاده کنین.

اگر می خواهین براتون یک مثال بزنم؟

viper2009
یک شنبه 05 مهر 1388, 22:55 عصر
سلام دوستان،
یعنی شما از ستون Identity استفاده می کنید و هنگامی که از جدولتان select می گیرین می خواهین به صورت مرتب شده به نمایش در بیاید؟

من به شما پیشنهاد نمی کنم که بیایین مقدار ستون Identity را ویرایش کنین. این مقدار سر جای خودش باشد و به جای آن هنگامی که از جدول یک query می گیرین از تابع Row Number استفاده کنین.

اگر می خواهین براتون یک مثال بزنم؟

ممنون می شم

محمد سلیم آبادی
یک شنبه 05 مهر 1388, 22:58 عصر
فرض کنید که ما یک جدول به نام t1 داریم و یک ستون از نوع identity با نام i داریم می خواهیم هنگامی که از جدول select میگیریم به هر سطری از جدول با ترتیب ستون i یک شماره بدهیم:

SELECT *,
ROW_NUMBER() OVER (ORDER BY i) AS Record_ID
FROM t1

البته تابع Row Number در SQL Server 2000 وجود ندارد.

viper2009
یک شنبه 05 مهر 1388, 23:10 عصر
فرض کنید که ما یک جدول به نام t1 داریم و یک ستون از نوع identity با نام i داریم می خواهیم هنگامی که از جدول select میگیریم به هر سطری از جدول با ترتیب ستون i یک شماره بدهیم:

SELECT *,
ROW_NUMBER() OVER (ORDER BY i) AS Record_ID
FROM t1

البته تابع Row Number در SQL Server 2000 وجود ندارد.

آقا ممنون عالی بود

فقط چون من می خوام این شماره ها رو در برنامه ام استفاده کنم نام فیلدش چیه؟

محمد سلیم آبادی
یک شنبه 05 مهر 1388, 23:18 عصر
همانطوری که در مثالی که برایتان قرار دادم من نام این ستون را Record_ID قرار دادم که شما می توانین به دلخواه یک نام مستعار به این ستون بدهید (با کمک AS).

البته نام های مستعار در همان Query قابل استفاده نیستند یعنی نمی توانید بیایین روی همین ستون در Where استفاده کنید.

viper2009
یک شنبه 05 مهر 1388, 23:30 عصر
همانطوری که در مثالی که برایتان قرار دادم من نام این ستون را Record_ID قرار دادم که شما می توانین به دلخواه یک نام مستعار به این ستون بدهید (با کمک AS).

البته نام های مستعار در همان Query قابل استفاده نیستند یعنی نمی توانید بیایین روی همین ستون در Where استفاده کنید.

در برنام ام همین Query رو لود کنم؟

محمد سلیم آبادی
یک شنبه 05 مهر 1388, 23:37 عصر
در برنام ام همین Query رو لود کنم؟

اگر از SQL Server 2005 به بالا استفاده می کنید می توانین دقیقا همین Query را داخل مثلا یک CommandString داشته باشین سپس Execute اش کنین. اگر بانکتان در SQL Server پیاده سازی نشده باشد این امکان وجود ندارد.

البته دقیقا عین همین Query را نه! باید نام جدول را به نام جدول خودتان تغیر دهین و ستون I را با نام ستون identity جدولتان تغییر دهین.

viper2009
یک شنبه 05 مهر 1388, 23:40 عصر
پس مشکل زیاد شد