ON و OFF کردن Identity برای ستون ID
ON و OFF کردن Identity برای ستون ID
در هنگام طراحی یک جدول از دیتابیس که یک ستون کلید اولیه (Primary Key) دارد (مثلاً ستون میخواهیم ستون ID را به عنوان کلید اولیه یک جدول انتخاب کنیم)، باید برای آن ستون خاصیت Identity را ON کنیم تا دو ردیف با ID یکسان ثبت نشود. با انجام این در هنگام اضافه شدن هر سطر به جدول ستون ID در به طور اتوماتیک مقدار جدیدی بدست میآورد.
اما ممکن است که در شرایطی لازم داشته باشیم که مقدار ID را خودمان ثبت کنیم. در نتیجه باید خاصیت Identity را OFF کنیم. برای انجام این کار به مثال زیر توجه کنید:
جدول Persons را در نظر بگیرید:
|
P_Id |
LastName |
FirstName |
Address |
City |
|
1 |
Hansen |
Ola |
|
Sandnes |
|
2 |
Svendson |
Tove |
Borgvn 23 |
Sandnes |
|
3 |
Pettersen |
Kari |
|
Stavanger |
حال ما ردیف دوم از این جدول را پاک میکنیم:
|
P_Id |
LastName |
FirstName |
Address |
City |
|
1 |
Hansen |
Ola |
|
Sandnes |
|
3 |
Pettersen |
Kari |
|
Stavanger |
حال میخواهیم یک ردیف به این جدول اضافه کنیم که P_Id آن برابر با ۲ باشد. همان طور میدانیم، این کار غیر ممکن است. مگر اینکه خاصیت Identity ستون P_Id برداشته شود. برای انجام این کار دستور زیر را مینویسیم:
|
set IDENTITY_INSERT Persons on |
با انجام این کار میتوان یک ردیف با شماره P_Id = 2 ثبت کرد. فقط دقت داشته باشید پس از انجام این کار حتماً دستور زیر را اجرا نمائید:
|
set IDENTITY_INSERT Persons off |
در غیر این صورت ممکن است ردیفهایی با P_Id تکراری بوجود بیاید که خیلی خطرناک است.