PDA

View Full Version : سوال: فیلد عددی با ویژگی Identity Specification



BestLover
جمعه 27 اردیبهشت 1387, 23:50 عصر
سلام و خسته نباشید.
من در Sql Server 2005 یک فیلد عددی ایجاد کردم و خاصیت Identity Specification اون رو هم درست کردم. این خاصیت باعث می شه که مقدار این فیلد یکی یکی به صورت خودکار زیاد بشه.(AutoNumber)
حالا مشکل من اینه که بعد از پاک کردن اطلاعات داخل جدول مقدار این فیلد 1 نمی شه.

اگه ممکنه راه حل درست کردن این مشکل رو به من بگید.

با تشکر

BestLover
دوشنبه 30 اردیبهشت 1387, 00:13 صبح
سلام
هیچ کس نیست که کمک کنه ؟

Amir_Safideh
دوشنبه 30 اردیبهشت 1387, 10:31 صبح
خوب در حالت عادی مقدار این فیلد بعد از حذف رکوردها مجددا از 1 شروع نخواهد شد . اگر شما میخواهید که مقدار این فیلد مجددا از 1 شروع بشه بهتره که به جای حذف رکوردها کل جدولتون رو با دستورات اس کیو ال حذف کنید و مجددا جدول رو بسارید .
-----------
موفق باشید .

Alireza Orumand
دوشنبه 30 اردیبهشت 1387, 13:57 عصر
سلام
میتونید از دستور DBCC CheckIdent استفاده کنید. مقدار فعلی Identity رو به شما میده و در صورت نیاز میتویند با استفاده از پارامتر های ورودی مقدار Identity رو تغییر بدید به هر مقداری مورد نظر شما هست.
راه حلی هم که دوستمون گفتن جواب میده ولی روش استاندارد استفاده از DBCC CheckIdent هست
برای اطلاعات بیشتر در Books Online این قسمت رو مطالعه کنید.
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/2c00ee51-2062-4e47-8b19-d90f524c6427.htm
موفق باشید.

BestLover
سه شنبه 31 اردیبهشت 1387, 23:49 عصر
سلام
خیلی ممنون. من لینکی رو که شما گفتید دیدم. اما متوجه نشدم که کجا باید این دستورات رو بنویسم.
اگه امکان داره با ذکر یک مثال توضیح بدید.
ممنون می شم.

با تشکر

BestLover
شنبه 04 خرداد 1387, 23:23 عصر
SOS SOS نبود ؟؟؟

hdv212
شنبه 04 خرداد 1387, 23:58 عصر
با این دستور، میتونید identity جدولتون رو reset کنید :

truncate table tableName
حواست باشه که این دستور اطلاعات جدول شما رو هم پاک میکنه.

razavi_university
دوشنبه 06 خرداد 1387, 15:16 عصر
سلام
میتونید از دستور DBCC CheckIdent استفاده کنید. مقدار فعلی Identity رو به شما میده و در صورت نیاز میتویند با استفاده از پارامتر های ورودی مقدار Identity رو تغییر بدید به هر مقداری مورد نظر شما هست.
راه حلی هم که دوستمون گفتن جواب میده ولی روش استاندارد استفاده از DBCC CheckIdent هست
برای اطلاعات بیشتر در Books Online این قسمت رو مطالعه کنید.
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/2c00ee51-2062-4e47-8b19-d90f524c6427.htm
موفق باشید.
اين دستور آخرين مقدار Identity رو بهمون ميده از كجا شماره Identity آخرين ركوردمون رو در بياريم تا Reseed كنيم؟
روشي غير از اين وجود نداره؟

BestLover
سه شنبه 07 خرداد 1387, 02:00 صبح
سلام
لطفا بگید که کجا این دستور رو بنویسم.

Alireza Orumand
سه شنبه 07 خرداد 1387, 13:02 عصر
سلام

سلام
لطفا بگید که کجا این دستور رو بنویسم.
تو sql یه query جدید باز کنید و این دستور رو اونجا بنویسید. مثلا

DBCC CHECKIDENT ('HumanResources.Employee', RESEED, 30)
مقدار IDentity را 30 میکنه. لینکی که داده بودم مربوط مربوط به Books online که اگه مطالعه کنید به شما کمک میکنه.

اين دستور آخرين مقدار Identity رو بهمون ميده از كجا شماره Identity آخرين ركوردمون رو در بياريم تا Reseed كنيم؟
روشي غير از اين وجود نداره؟
این دستور با توجه به پارامتر های ورودی رفتارهای متفاوتی داره. به لینک Books online مراجعه کنید راهنمای خوبیه.
برای به دست آوردن آخرین رکورد میتونید یک Select کنید و اون رو Sort کنید و شماره آخرین رکورد رو بخونید.
روش درست انجام این کار استفاده از این دستوره حالا روش دیگه اگر وجود داشته باشه من بی اطلاع هستم.
موفق باشید.