PDA

View Full Version : ريست كردن فيلد منحصر بفرد (از نوع int)



ali190
جمعه 24 دی 1389, 12:56 عصر
باسلام
من در جدولم براي اينكه به هر ركوردم يك شماره منحصربفرد اختصاص بدم فيلدي از نوع Int اختصاص دادم
اول ميخواستم بدونم اين فيلد از نوع Int تا چه مقدار عدد براي تعداد ركوردهام رو ساپورت ميكنه؟
سئوال دوم اينه كه من براي تست برنامه ام حدود 1000 تا ركورد رو ثبت كردم ، حالا اونارو حذف كردم و ميخوام ركوردهاي واقعي وارد كنم ، ولي بمحض وارد كردن ركورد از 1001 شروع ميشه
ميخواستم بدونم چطور ميتونم اين فيلد رو ريست كنم تا از شماره 1 شروع بشه؟
من از اين جداول كه درش از نوع فيلد وجود داشته باشه زياد دارم و در قسمت diagram ارتباطلات زيادي رو برقرار كردم
البته يه راه به ذهنم رسيد كه در حالت design جدولم فيلد از نوع int رو حذف و دوباره با همون نام ايجاد كنم
البته در بعضي از جاها ارتباطلات در diagram ام بهم خورد
در اكسس با يك بار compact and repair نمودن ديتابيس اين مشكل حل ميشد
ممنون ميشم راهنماييم كنيد
ياعلي

Mohammad S
جمعه 24 دی 1389, 23:11 عصر
سلام
جواب سوال اول با استفاده از راهنمای SQL Server 2008

bigint :
-2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
8 Bytes

int
-2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
4 Bytes

smallint
-2^15 (-32,768) to 2^15-1 (32,767)
2 Bytes

tinyint
0 to 255
1 Byte

جواب سوال دوم:
با دستور زیر کل داده‌های جدول حذف می‌شوند و البته فیلد‌های Autoincrement هم ریست می شوند:

نام جدول TRUNCATE TABLE

ali190
جمعه 24 دی 1389, 23:28 عصر
سلام
ممنون
جواب سئوال اولم رو گرفتم

جواب سوال دوم:
با دستور زیر کل داده‌های جدول حذف می‌شوند و البته فیلد‌های Autoincrement هم ریست می شوند:

نام جدول TRUNCATE TABLE
اما در مورد سئوال دوم متوجه منظورتون نشدم
ميشه بيشتر توضيح بديد؟
ممنون
ياعلي

behrouzlo
شنبه 25 دی 1389, 10:56 صبح
شما وقتی می خواهید داده های قبلی جدول را حذف کنید و داده های واقعی را وارد کنید. با دستور "نام جدول TRUNCATE TABLE" اینکار را نجام دهید که هم داده ها حذف بشود و هم فیلد های شما که خاصیت Identity آنها True است را ریست کند.

ali190
شنبه 25 دی 1389, 17:25 عصر
سلام
دوست عزيز من تازه sql رو شروع كردم

با دستور "نام جدول TRUNCATE TABLE" اینکار را نجام دهید که هم داده ها حذف بشود و هم فیلد های شما که خاصیت Identity آنها True است را ریست کند.
ميشه بگيد از اين دستور چطوري و در كجا استفاده كنم
من واقعاً نميدونم از اين دستور چطوري استفاده كنم
ممنون ميشم راهنماييم كنيد
ياعلي

Mohammad S
یک شنبه 26 دی 1389, 02:23 صبح
شما می توانید این دستور را در محیط SQL Server Management Studio اجرا کنید. کافی است بر روی New Query کلیک کرده و دستور مورد نظر را بنویسید. مثلاً اگر نام جدول شما Employee است، کافی است بنویسید Truncate Table Employee و با کلید F5 از صفحه کلید، آن را اجرا کنید.
این کار را هر وقت خواستید انجام دهید. با این کار، کل محتویات جدول Employee حذف می شود و از طرفی، فیلدهای خودافزایشی نیز reset می شوند.
معمولاً این کار زمانی انجام می شود که پروژه نوشته شده و آماده تحویل است.

ali190
یک شنبه 26 دی 1389, 19:51 عصر
سلام
من از sql server2000 استفاده ميكنم
گزينه اي به اسم new query‌ وجود نداره
اگر ميشه بيشتر راهنمايي بفرمائيد
ياعلي

javad2140
دوشنبه 27 دی 1389, 00:20 صبح
دوست عزيز سلام
در SQL2000 مي تونيد بريد به منوي Tools بريد و در آنجا SQL Query Analyzer را انتخاب كنيد و در اينجا يك پنجره جديد باز مي شود و دستوري كه مي خواهيد انجام دهيد اينجا بنويسيد و بعد تمام شدن دستور كليد F5 را بزيد تا Query اجرا شود .

Mohammad S
یک شنبه 01 اسفند 1389, 12:49 عصر
سلام
همانطور که دوستمان آقا جواد گفتند شما به جای اینکه از محیط Enterprise Manager وارد شوید، وارد محیط Query Analyzer وارد شوید. هنگام ورود از شما رمز ورود می خواهد که رمزی که هنگام نصب تعیین کرده اید را وارد می کنید یا گزینه Windows Authentication را انتخاب می کنید.
سپس با فرض اینکه نام پایگاه داده شما TestDB و نام جدول شما Employee باشد، دستورات زیر را بنویسید:
use TestDB
Truncate Table Employee