نقل قول: چند سوال در مورد SQL
جواب سؤال اول : بله چنین مقداری داره و نام آن Identity است و بصورت زیر نوشته میشود
[/CODE] Identity(1, 1)[CODE]
این به این معنی است که مقدار ابتدایی آن از 1 شروع شده و یکی یکی هم اضافه میشود
نقل قول: چند سوال در مورد SQL
ولی این روش یک ایراد بزرگ داره و ان این است که وقتی داده های یک جدول را حذف می کنیم مقدار auto number کم نمی شود و فقط در حالت افزایشی است.
می توانید امتحان کنید : یک جدول ایجاد کنید و یکی از فیلد ها را از این روش اسفاده کنید و بعد جدول مربوطه را باز کرده و مقداری داده وارد کنید و بعد کل داده ها را حذف کنید و دوباره داده وارد کنید می بینید که از همان مقدار قبلی دوباره شروع به افزایش می کند . و این یک ایراد بزرگ است
برای حل مشکل راه حل پیشنهادی من : در sp متغیری تعریف کنید و در هر اعمال درج یک واحد مقدار ان را اضافه و در هر عمل حذف یک واحد ان را کاهش دهید و بعد مقدار نهایی را داخل فیلدی که می خواهید به عنوان auto number شما در نظر گرفته شود بریزید.
نقل قول: چند سوال در مورد SQL
نقل قول:
نوشته شده توسط
amin-malakeuti2
ولی این روش یک ایراد بزرگ داره و ان این است که وقتی داده های یک جدول را حذف می کنیم مقدار auto number کم نمی شود و فقط در حالت افزایشی است.
می توانید امتحان کنید : یک جدول ایجاد کنید و یکی از فیلد ها را از این روش اسفاده کنید و بعد جدول مربوطه را باز کرده و مقداری داده وارد کنید و بعد کل داده ها را حذف کنید و دوباره داده وارد کنید می بینید که از همان مقدار قبلی دوباره شروع به افزایش می کند . و این یک ایراد بزرگ است
برای حل مشکل راه حل پیشنهادی من : در sp متغیری تعریف کنید و در هر اعمال درج یک واحد مقدار ان را اضافه و در هر عمل حذف یک واحد ان را کاهش دهید و بعد مقدار نهایی را داخل فیلدی که می خواهید به عنوان auto number شما در نظر گرفته شود بریزید.
این به ذات ایراد نیست. چون فرض کن که تو یک لینک درست کردی که Id این سطر رو توی اون قرار دادی( یا صریح یا encrypted) و فرض کن داده متناظر با این Id رو پاک کردی و بجاش دادهی جدید قرار دادی در این صورت مسلما کاربرت خیلی خوشحال نمیشه یا کلی تعجب میکنه. ولی اگه پیغام این رکورد حذف شده بدی حساب کار دستش میاد(به معنی خوبش نه به معنی کتککاریش).