PDA

View Full Version : سوال: ایجاد شناسه برای رکورد به صورت خودکار، با اندکی تغییر !



arash69
پنج شنبه 07 فروردین 1393, 18:45 عصر
سلام به همه دوستان.
از اسم تاپیک هم پیداست که نتونستم موضوع سوالم رو توی یک عبارت خلاصه کنم:لبخندساده:
سوالی که دارم، در مورد فیلدهایی مانند ID در جداول پایگاه داده هست.
فکر کنم اگر سوالم رو درست با همین پروژه ای که کار میکنم، توضیح بدم؛ برای شما هم قابل درک تر خواهد بود.
یک سایت برای شرکتی را در نظر بگیرید که از طریق سایت، از مشتریان، سفارش می پذیرد.
این سفارشات در پایگاه داده MS SQL ذخیره می شوند و هریک از سفارشات به صورت یک رکورد در جدولی دارای فیلد ID، به عنوان کلید اصلی، نمایش داده می شوند.
سوالی که دارم اینه:
آیا می توان کاری نمود تا فیلد ID همراه با افزایش خودکار، طوری باشد که عدد اختصاص داده شده به ID، از حدی فراتر نرود و از ID رکوردهایی که قبلا حذف شده اند نیز اختصاص داده شود؟

ممنون میشم راهنمایی کنید.

پ.ن: در حال حاضر، در این پروژه، این فیلد تنها قابلیت افزایش خودکار را دارد.
پ.ن 2: هدفم از اینکار اینه که نمیخوام بعد از مدتی، اعداد بسیار بزرگ در پایگاه داده وجود داشته باشند.

mRizvandi
جمعه 08 فروردین 1393, 11:43 صبح
معمولا در ثبت سیستمهای سفارش نباید اطلاعات سفارشی حذف شود! (تاریخچه سفارش باید کاملا مشخص باشه و فیلد وضعیت سفارش باید اضافه بشه تا حذف شدن رو هم نمایش بده)
اگر حالتی دارید که ممکنه سفارش حذف بشه باید از دو جدول استفاده کنید. یکی برای سفارشهای تایید نشده (یا هر اسم دیگه ای) و وقتی سفارش تایید شد و حتمی شد در جدول دیگه ای ثبتش کنید.

kohyar
جمعه 08 فروردین 1393, 13:50 عصر
اگر شما فیلد ID رو از نوع Autonumber در نظر بگیری کا خودش افزایش پیدا میکنه نمی تونی از مقادیر قبلی که حذف شده اند استفاده کنی
تنها راهش اینه که بصورت دستی و در قسمت دیزاین جدول این فیلد رو یکبار حذف کنی و مجدداً بصورت دستی اضافه کنی. که البته اگر از این فیلد ID در اطلاعات جدوال دیگر استفاده کنی تمامی ارتباطات داده ای به هم میخوره

mRizvandi
جمعه 08 فروردین 1393, 22:14 عصر
اگر شما فیلد ID رو از نوع Autonumber در نظر بگیری کا خودش افزایش پیدا میکنه نمی تونی از مقادیر قبلی که حذف شده اند استفاده کنی
تنها راهش اینه که بصورت دستی و در قسمت دیزاین جدول این فیلد رو یکبار حذف کنی و مجدداً بصورت دستی اضافه کنی. که البته اگر از این فیلد ID در اطلاعات جدوال دیگر استفاده کنی تمامی ارتباطات داده ای به هم میخوره
البته شدنش که شدنی هست، اما کار پسندیده ای نیست.
Set Identitiy Off البته نام جدول هم باید ذکر بشه.
با SP میشه این کار رو انجام داد.

راهنما:
http://technet.microsoft.com/en-us/library/aa259221(v=SQL.80).aspx