نحوه ریست مقادیر ستون Identity در SQL

آخرین بروز رسانی: 1400/12/24

"ستون Identity " چیست؟
ستون Identity  جدول ستونی است که مقدار آن به طور خودکار افزایش می یابد. یک کاربر معمولاً نمی تواند مقداری را در ستون هویت وارد کند. یک جدول می تواند تنها یک ستون داشته باشد که با اتریبیوت Identity  تعریف شده است.

Syntax :
IDENTITY [ ( seed , increment ) ]

💡مقدار پیش فرض هویت IDENTITY (1،1) است.
Seed: دانه نشان دهنده مقدار شروع یک ID است و مقدار پیش فرض seed 1 است.

Increment: مقدار افزایشی ID را نشان می دهد و مقدار پیش فرض افزایش 1 است.


مثلا :

مرحله 1: جدولی به نام مدرسه ایجاد کنید.

CREATE TABLE school (
id INT IDENTITY,
student_name VARCHAR(200),
marks INT
);

در اینجا، ستون "student_id" جدول از 1 شروع می شود زیرا مقدار پیش فرض seed 1 است و هر ردیف 1 افزایش می یابد.

مرحله 2: مقداری را در جدول وارد کنید.

INSERT INTO school (student_name, marks) VALUES ('Sahil', 100);
INSERT INTO school (student_name, marks) VALUES ('Raj', 78);
INSERT INTO school (student_name, marks) VALUES ('Navneet', 80);
INSERT INTO school (student_name, marks) VALUES ('Rahul', 75);
INSERT INTO school (student_name, marks) VALUES ('Sudeep', 82);
INSERT INTO school (student_name, marks) VALUES ('Azaan', 75);

مرحله 3: برای مشاهده رکوردهای جدول 'school' می توانیم از کد زیر استفاده کنیم:

SELECT * FROM school;
id student_name marks
1 Sahil 100
2 Raj 78
3 Navneet 80
4 Rahul 75
5 Sudeep 82
6 Azaan 75


مرحله 4: اجازه می دهیم رکوردها را حذف کنیم.

DELETE FROM school;

حالا اگر یه رکورد جدید insert کنید میبینید که Id  آن برابر 7 خواهد بود (با اینکه از قبل هیچ رکوردی در جدول وجود ندارد و میشد ID  از 1 شروع شود)

id student_name marks
7 NewTestValue 220


برای اینکه Id رکوردهای جدید از 1 شروع شود باید دستور زیر را اجرا کنید

DBCC CHECKIDENT ('school', RESEED, 0);

 

💡اگر جدول ما داری رکورد باشد و رکوردهای موجود در جدول را ریست کنیم , در این صورت موقع insert کردن رکوردهای جدیدی ، به خطا برمیخوریم.

برای رفع این مشکل:

-یک جدول جدید به عنوان پشتیبان از جدول اصلی (یعنی مدرسه) ایجاد کنید.
-تمام داده ها را از جدول اصلی حذف کنید.
-و حالا ستون هویت را ریست کنید.
-همه داده ها را از جدول پشتیبان به جدول اصلی دوباره وارد کنید.

 

 

نظر دهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *