PDA

View Full Version : تولید شماره ی سریالی



nAVA470
یک شنبه 16 خرداد 1389, 09:50 صبح
با سلام و تشكر از دوستان
چگونه ميتوان ماكزيمم يك فيلد را محاسبه كرد و يكي به آن اضافه نمود ودر ركورد بعدي همان فيلد اضافه كرد.
آيا اين موضوع در SQL قابل انجام است.
ممنون از جواب شما:لبخندساده:

حسین شهریاری
یک شنبه 16 خرداد 1389, 10:00 صبح
شما نیاز نیست این کارا بکنین.کافیه نوع فیلدتونا که تعیین کردید مثلا int بعد اون پایین ویژگی Identity اونا برابر True قرار بدید.همون چیزی میشه که شما میخای...

nAVA470
یک شنبه 16 خرداد 1389, 10:42 صبح
شما نیاز نیست این کارا بکنین.کافیه نوع فیلدتونا که تعیین کردید مثلا int بعد اون پایین ویژگی Identity اونا برابر True قرار بدید.همون چیزی میشه که شما میخای...

مهندس ممنون از جوابتون
ولي مشك اينجاست كه عددي كه به صورت identity وارد ميشو در عمل مشكل پيدا ميكند به اين ترتيب كه: زماني كه كاربر تعدادي از فيلدها رو غلط وارد كنه شما اعداد ي رو از دست ميدهيد
و در فيلد مورد نظر اعداد زيادي از بين ميروند.

من ميخواهم بدونم ميشه نتيجه يك view رو در يك فيلد ريخت يا نه؟

ASKaffash
یک شنبه 16 خرداد 1389, 10:46 صبح
سلام


Select M=IsNull(Max(F),0)+1 From T

A.Nemati
دوشنبه 17 خرداد 1389, 12:59 عصر
مهندس ممنون از جوابتون
ولي مشك اينجاست كه عددي كه به صورت identity وارد ميشو در عمل مشكل پيدا ميكند به اين ترتيب كه: زماني كه كاربر تعدادي از فيلدها رو غلط وارد كنه شما اعداد ي رو از دست ميدهيد
و در فيلد مورد نظر اعداد زيادي از بين ميروند.
؟
اصلا ارزشش رو نداره:
يه معادله ساده: شما اگه نوع فيلد identity رو int بگيري، تا 2,147,483,647 رو پوشش مي‌ده. يعني اگه روزي 100,000 ركورد هم ثبت بشه (حالا هر چند تا هم كه از دست بره)، 58 سال طول مي‌كشه تا اين فيلد پر بشه. اگه فكر مي‌كني كه ممكنه بيشتر از اين از برنامه‌ات استفاده كنن! يعني بيشتر از روزي 100,000 ركورد! و بيشتر از 58 سال!، identity رو از نوع bigint انتخاب كن. اونوقت تا 9223372036854775807 رو پوشش مي‌ده !!!!
ضمنا اگه جدولت سنگين باشه و مقدار مراجعات و ثبت ركورد توش زياد باشه كه بخاطرش نمي‌خواي رديف از دست بدي، كاري كه مي‌خواهي انجام بدي بار روي سرور مي‌گذاره و ممكنه جاهايي هم احساس كندي بشه و تازه مديريت كردنش و دردسرهايي هم كه داره اصلا ارزش نداره.
اگه مشكل ديگه‌اي غير از موردي كه عنوان كردي نداري، بهتره از همون identity استفاده كني.