PDA

View Full Version : کار با مقدار کلید اصلی



sempay_ninjutsu
یک شنبه 04 مهر 1389, 13:20 عصر
سلام
دوستان من تو جدولم یه کلید اصلی دارم و identity اون رو هم true کردم .بعد من تو این جدولم یه حدود 100 تا داده ریختم و هی پاک کردم و الان کلید اصلی من 102 رو نشون میده.آیا راهی داره که من بتونم این کلید اصلی رو به 1 تغییر بدم و دوباره از همون 1 شروع به پر شدن بکنه!!!!!!
ممنون

tooraj_azizi_1035
یک شنبه 04 مهر 1389, 13:25 عصر
راه حلی که مایکروسافت برای جلوگیری از به وجود اومدن شکاف بین مقادیر یک ستون Autonumber که در اثر حذف رکورد ها بوجود می یاد پیشنهاد می کنه ساخت یه Trigger حساس به حذف هست.
در غیر این صورت باید دستی مقادیر رو ست کنی و SQL Server به آخرین مقدار ستون یکی اضافه می کنه و به جلو می ره.

behrouzlo
یک شنبه 04 مهر 1389, 16:04 عصر
فکر کنم Trigger حساس به حذف ائده زیاد مناسبی نیست. برای ریست کردن فیلد identity از دستور زیر استفاده کنید.


DBCC CHECKIDENT ("TABLENAME", RESEED, 0);

فقط به جای TABLENAME نام جدول خودتان را قرار دهید

tooraj_azizi_1035
دوشنبه 05 مهر 1389, 08:16 صبح
فکر کنم Trigger حساس به حذف ائده زیاد مناسبی نیست. برای ریست کردن فیلد identity از دستور زیر استفاده کنید.



DBCC CHECKIDENT ("TABLENAME", RESEED, 0);



فقط به جای TABLENAME نام جدول خودتان را قرار دهید

آقای بهروز لو Trigger حساس به حذف رو برای Reset کردن نگفتم برای حفظ ترتیب و جلوگیری از بوجود اومدن فاصله بین مقادیر ستون IDENTITY گفتم.

pezhvakco
دوشنبه 05 مهر 1389, 10:22 صبح
هی پاک کردم و الان کلید اصلی من 102 رو نشون میده
اگه کد دستور زیر رو برای پاک کردن به کار بگیری، مشکلی نداری :

TRUNCATE TABLE Table_Name

sempay_ninjutsu
جمعه 09 مهر 1389, 13:14 عصر
فکر کنم Trigger حساس به حذف ائده زیاد مناسبی نیست. برای ریست کردن فیلد identity از دستور زیر استفاده کنید.


DBCC CHECKIDENT ("TABLENAME", RESEED, 0);

فقط به جای TABLENAME نام جدول خودتان را قرار دهید
من وقتی این دستور رو مینویسم یه ارور میده میگه باید ادمین باشی.من چکارش باید بکنم؟

sempay_ninjutsu
جمعه 09 مهر 1389, 13:15 عصر
اگه کد دستور زیر رو برای پاک کردن به کار بگیری، مشکلی نداری :

TRUNCATE TABLE Table_Name
میشه یکم راجب این دستور توضیح بدین؟
ممنون

بهزادصادقی
جمعه 09 مهر 1389, 21:33 عصر
میشه یکم راجب این دستور توضیح بدین؟
ممنون

این دستور تمام رکوردهای جدول شا را کاملا جذف می کند و در ضمن، باعث می شود که شماره های identity دوباره از 1 آغاز شوند.