PDA

View Full Version : Auto number



hamidhws
جمعه 13 اسفند 1389, 03:30 صبح
سلام دوستان

ببخشید نمیدونستم کجا این تاپیکو بزنم

سوالم اینه : فرض کنید یه table داریم با یه فیلد آیدی

چطور میشه طوری تنظیم کرد که فیلد آیدی بصورت خودکار پربشه؟ مثلا 0 و1و2و3و4و5و... که با اضافه کردن هر سطر به طور خودکار اضافه بشه و با حذف کردن هم مرتب بشه


یعنی یجورایی نقش شمارنده داشته باشه

نمیدونم تونستم منظورمو برسونم یا نه

اگه ممکنه راهنمایی بفرمایید چون تازه دارم با sql کار میکنم


ممنون

pezhvakco
جمعه 13 اسفند 1389, 13:34 عصر
سلام :
برای اینکه یک ستون شمارنده داشته باشی می تونی خاصیت Identity رو بکار بگیری (ستون باید ساختار عددی داشته باشه) .
اما اگه یک ردیف پاک بشه، شمارنده بکار خودش ادامه میده و مرتب سازی (به اون صورت که شما می خوایین) نداره .

برای اینکه مرتب سازی پس از پاک شدن یک ردیف انجام بشه باید خودتون یک دستور بنویسین (البته شاید زیاد کار درست و بهینه ای نباشه چون شناسه یک ردیف جدول نباید تغییر کنه و این کار در تعداد ردیف های زیاد مشکل ساز میشه) بر این اساس که از شماره ردیف های پس از این ردیف یکی کم کنه .

یا روش های دیگری که استادان بگن ...

hamidhws
جمعه 13 اسفند 1389, 17:48 عصر
سلام دوست عزیز

میشه بفرمایید چطوری identity رو بکار بگیرم؟

ویه سوال دیگه یعنی اینطوری همه ردیف ها یه شماره منحصر به فرد پیدا میکنن؟ یعنی تکراری نمیشن؟


ممنون از پاسخ گویی شما دوست عزیز

pezhvakco
جمعه 13 اسفند 1389, 18:33 عصر
میشه بفرمایید چطوری identity رو بکار بگیرم؟
در بخش تنظیمات جدول، ستون مورد نظر را انتخاب و مقدار identity رو True کنین .

اینطوری همه ردیف ها یه شماره منحصر به فرد پیدا میکنن؟ یعنی تکراری نمیشن؟
با فعال بودن این گزینه خود پایگاه داده Sql این ستون رو مقدار دهی میکنه و تکراری نمیشه .

hamidhws
شنبه 14 اسفند 1389, 20:53 عصر
سلام دوست عزیز
روش در زمان طراحی و مقدار دهی در زمان طراحی درست کار میکنه

اما زمانی که با دیتا فرم ادد میکنم گزینه آیدی که این مشخصه رو بهش دادم همش 0 میشه باید چیکار کنم؟
من دیتا فرم رو به دیتا گرید بایند کردم
با تشکر

hamidhws
یک شنبه 15 اسفند 1389, 04:23 صبح
یه سوال کوچک دیگه هم داشتم و تا اونجایی که میدونم int تا یه سقف محدودی اطلاعات میگیره

کدوم متغیر مقدار نامحدود در خودش جای میده؟ آیا از نوع عددی هست یا فقط رشته ای؟ و کدوم؟


با تشکر

pezhvakco
یک شنبه 15 اسفند 1389, 19:29 عصر
اما زمانی که با دیتا فرم ادد میکنم گزینه آیدی که این مشخصه رو بهش دادم همش 0 میشه باید چیکار کنم؟
اگه ستون رو شناسه (identity) تعریف کنین خود Sql مدیریت انجام میده و شما لازم نیست مقدار دهی نمایید .


کدوم متغیر مقدار نامحدود در خودش جای میده؟ آیا از نوع عددی هست یا فقط رشته ای؟ و کدوم؟
مقدار نامحدود که نمیشه .
اگه بازه Int کم است میتونی bigint رو داشته باشی ...

hamidhws
دوشنبه 16 اسفند 1389, 03:08 صبح
مقدار نامحدود که نمیشه .
اگه بازه Int کم است میتونی bigint رو داشته باشی ...

حتی نوع رشته ای هم نامحدود نداره؟! اگه نداره حداکثر در مقدار رشته ای چه مقداره؟