الأربعاء، 25 يونيو 2014

إضافة Identity Column

إضافة Identity Column
تعريف Identity Column هي خاصية نستطيع من خلالها التحكم في شكل العمود وجعلة متسلسل تلقائياً باي رقم نريد البدأ به  و باي عدد زيادة.


جدول tblPerson:

أمر إضافة Column من نوع Identity:
ID int  identity(1,1) primary Key 
ويكتب بهذا الشكل مع إنشاء جدول باسم tblPerson:
Column ID من نوع  int ومتسلسل identity بمقدار زيادة Identity Increment  1 و أول صف Identity Seed يكون بالقيمة 1.
Column Name من نوع nvarchar وطوله 50 ولا يمكن أن يكون NULL وهكذا...

Create Table tblPerson
(
ID int  identity(1,1) primary Key ,
Name nvarchar(50) NOT NULL,
Email nvarchar(50) NOT NULL,
GenderID int,
Age int
)

توضح الصورة التالية خصائص ID Column, ونريد التركيز علي الخاصية Identity.
Identity Seed هي قيمة أول صف Row يتم إضافتة بالجدول و الخاصية Identity Increment مقدار الزيادة لكل Row جديد:


والان قمت بتغير الخصائص ل Column  IDكما بالصورة التالي:


تم تغير Is Identity = Yes
تغير مقدار الزيادة Identity Increment = 1
تغير قيمة أول Row وهي Identity Seed = 1000

نلاحظ شكل البيانات بعد ادخالها بالجدول قد اصبح اول Row بقيمة 1000 وهي القيمة التي تم اسندها للخاصية Identity Seed, ونلاحظ ان ثاني Row زاد بمقدار رقم 1 , الذي هو قيمة Identity Increment.

ID         Name                Email                GenderID          Age
1000     Nader Khaled     n@gmail.com     1                      22
1001     Bassem Khaled  b@gmail.com     1                      21
1002     Meno Nader       m@gmail.com    1                      6


امكانية إضافة Row يبدأ من الترقيم الطبيعي للجدول اي بتسلسل 1 – 2 – 3 - ... وهكذا.
بمعني اذا حولنا اضافة بيانات جديدة إلى الجدول التالي بعد حذف كل ما به من بيانات سوف يكون الشكل كالتالي:
أولا شكل الجدول وبه بيانات وسوف نقوم بحذف كل ما به ونلاحظ أخر مسلسل لدينا هو ID=2, نقوم بالحذف:

Delete from tblPerson where ID = 2



والان لنضيف صف جديد ونلاحظ ID.



اصبح ID Column بالقيمة 3, ولكن نحن نريد ان يبدأ التسلسل من الرقم 1؟

يوجد الأمر Command DBCC وهو اختصار لـ DBCC Database Consistency Check, يستخدم لإعادة قيمة التسلسل identity إلى وضع الأفتراضي.


DBCC CHECKIDENT (tblPerson,RESEED,0)

نضيف الأن صف جديد New Row:
INSERT INTO tblPerson VALUES ('Sara','s@s.com',2,18)

النتيجة:


تم إعادة قيمة التسلسل identity إلى وضع الأفتراضي بالقيمة 1.




ليست هناك تعليقات:

إرسال تعليق

يسعدني إرسال تعليقاتكم وأسئلتكم واقتراحاتكم