الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الحلقة الثانية:الجديد في السيكوال سيرفر 2012

بدأه كلكامش الألكتروني في 1 أكتوبر 2012 · 5 رد · 1,257 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني واحبائي...

اعود اليكم اليوم لأكمال الحلقات حول السيكوال سيرفر 2012 وما جاء به من جديد التي تسر الصديق وتبغض العدو ^_^ لمتابعة الحلقة الاولى

دوال الوقت والتاريخ الجديدة في سيكوال سيرفر 2012

الكل يعلم ان السيكوال سيرفر في اتجاه Developer قد جاء بأنقلابات ثورية في مجال تعزيز الـ virtualization بالاضافة الى دعم Cloud Server من اجل تثبيت نفسها في سوق Cloud application

لنبدأ على بركة الله

1-SEQUENCE Object

لعل اول ميزة قد تجلب الانتباه والتي تم تسليط الضوء عليها كثيرآ من قبل مايكروسوفت هو SEQUENCE Object وهو عبارة عن كائن تسلسلي يستخدم من اجل انشاء سلسلة من القيم الرقمية استنادآ الى الخصائص التي حددت اثناء انشاءه, من ميزاته هو اننا نستطيع ان ننشأ هذا الكائن ويقوم بتوليد قيم بشكل تصاعدي او تنازلي وكذلك يمكننا من ان نقوم بأعداد هذا الكائن لكي يدور ويعيد نفسه من البداية عند وصوله للنهاية (اي يدور بنفس الحلقة التكرارية ) ,وعالعكس من خاصية Columns Identity فأنه لا يرتبط مع الجداول >>

الجميل بهذا الكائن الجديد أنه بأمكانك ان تقوم بأستدعاء القيمة الجديدة للمتسلسلة وان تتوقعها وذلك من خلال جملة NEXT VALUE FOR SeqNAme.

يجدر بالاشارة ان العلاقة بين هذا الكائن والجداول تتم عن طريق البرامج والتطبيقات

جملة انشاء هذا الكائن

CREATE SEQUENCE [schema_name . ] sequence_name
    [ AS [ built_in_integer_type | user-defined_integer_type ] ]
    [ START WITH <constant> ]
    [ INCREMENT BY <constant> ]
    [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ]
    [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ]
    [ CYCLE | { NO CYCLE } ]
    [ { CACHE [ <constant> ] } | { NO CACHE } ]
    [ ; ]

مثال حول انشاء هذا الكائن

CREATE SEQUENCE testSchema.eGilgameshSeq
START WITH 1
INCREMENT BY 1
MINVALUE 1
NO MAXVALUE
NO CYCLE;

لشرح الكود السابق نجد ان الكائن السلسلة يبدأ عند القيمة 1 ويزداد بمقدار واحد في كل مرة يتم استدعاء Next value for كما انه ليس هناك حد اقصى لهذا Sequence اي انه سوف يتكرر الى مالانهاية

مع الملاحظة ان القيمة التي ابتدأ بها (start with) هذا الكائن يجب ان تكون قيمة لا تكون اكبر او تساوي الـ MaxValue وبنفس الوقت يجب ان تكون أقل او تساوي الـ Minvalue, وفي حالة عدم ذكر قيمة الخاصية Start with فأنها سوف تأخذ القيمة الافتراضية والتي تساوي الـ minvalue

مثال ثاني

CREATE SEQUENCE  testSchema.eGilgameshSeq2
START WITH -10
INCREMENT BY 1
MINVALUE 1
MAXVALUE 10
CYCLE;

شرح المثال :نجد ان الكائن Sequence يبدأ بالقيمة -10 ويزداد بمقدار واحد وصولآ للقيمة 10 وكذلك في هذا المثال نجد ان الخاصية Cycle فعالة اي انه بمجرد ان تنتهي الدورة الاولى للـ Sequence سوف يعيد نفسه ولكن هذه المرة ليس من نفس المنطقة التي انطلق منها بل من قيمة الحد الادنى.....

ولاستخدام قيم الـ Sequence نقوم بأستخدام جملة"NEXT VALUE FOR " كما ذكرنا سابقآ كالمثال التالي

SELECT NEXT VALUE FOR  testSchema.eGilgameshSeq as IdentityFromSequence;

الكود الاخير يقوم بأسترجاع القيمة الحالية للكائن testSchema.eGilgameshSeq مهما كانت قيمته ومن ثم يقوم بزيادته حسب ما جاء في الـ Rule عندما انشئناه

اسلوب اخر لأستخدام هذا الكائن في جملة الـ Insert

INSERT testTable (myColumn)
VALUES (NEXT VALUE FOR testSchema.eGilgameshSeq);

كما يمكننا من اسناد قيمته لمتغير خاص كما في المثال التالي

SET @x=NEXT VALUE FOR testSchema.eGilgameshSeq;

يتبقى ان نشير الى فائدة الخاصية CACHE , فهي تقوم بزيادة فعالية وتحسين اداء التطبيقات التي تستخدم الكائن sequence وذلك من خلال تقليل عدد الـ disk IOs المستخدمة والمطلوبة لأنشاء وتوليد المتسلسلة الرقمية

على سبيل المثال، إذا تم اختيار CACHE من 50، SQL Server لايقوم بالاحتفاظ بـ 50 قيمة مخزنة بشكل مؤقت. بل انه يقوم فقط بتخزين القيمة الحالية وترك عدد من القيم الموجودة في ذاكرة التخزين المؤقت. هذا يعني أن كمية الذاكرة المطلوبة لتخزين ذاكرة التخزين المؤقت هو دائما عبارة عن two instances من نوع بيانات كائن التسلسل.

يجدر الاشارة الى أن هذا الكائن هو كائن مرتبط بالسكيما حاله حال العناصر الاخرى المتواجدة في السيكوال....

اي ان استخدام احد هذه الجمل CREATE SEQUENCE, ALTER,control يحتاج الى صلاحية (permission) في السكيما التي سوف يرتبط بها هذا الكائن وذلك عن طريق

اعطاء التخويل بالـ Database rule التالي

1-db_owner و db_ddladmin لكي يمكننا من استخدام Create ,Control,Alter

2-db_owner و db_datawriter لكي يمكننا من استخدام جملة "next value for " من اجل استدعاء القيمة الجديدة للـ Sequence .

وللمزيد من المعلومات حول هذا الكائن تفضل بزيارة الرابط

http://msdn.microsoft.com/en-us/library/ff878091(v=sql.110).aspx

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#2

جزاك الله خيرا أخي على الإفادة

يعني يمكن القول أن هذه الخاصية شبيهة بالميزة الموجود في الإكسل حيث عندما يتم اختيار خليتين أو أكثر ثم السحب يحاول استنتاج العلاقة بينها ثم يكمل السلسلة بناء عليها

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

منور اخي الكريم وجزاك الله خيرآ

يعتبر هذا الكائن عبارة عت متسلسلة رقمية واتوقع في المستقبل يتحول الى متسلسلة هندسية وذلك من خلال تضمينه داخل الـ Sub query

اما بخصوص سؤالك فنعم هناك اوجه تشابه بين هذا الكائن وبين ما ذكرته حضرتك

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#4

هل طريقة الشرح غير مقبولة وغير مفهومة؟

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#5

بسم الله الرحمن الرحيم

عيد سعيد وايامكم مباركة واعاده الله على جميع السلمين بالخير والبركة

------------

لك جزيل الشكر اخي العزيز

وشرحك مميز ومفهوم ونحن نترقب المزيد

عماد حمدي
العراق _ بغداد

 


https://sites.google.com/site/emadhamdyy/home

#6
بسم الله الرحمن الرحيم
عيد سعيد وايامكم مباركة واعاده الله على جميع السلمين بالخير والبركة
------------
لك جزيل الشكر اخي العزيز 
وشرحك مميز ومفهوم ونحن نترقب المزيد

وايامك مباركة وجعلك الله من عواده

مرورك اكثر تميزآ ان شاء الله ملخص كامل لكل ماهو جديد في سيكوال سيرفر 2012

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

مواضيع مشابهة