تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الحلقة الثانية: الجديد في السيكوال سيرفر 2012
#1
السلام عليكم اخواني واحبائي...
اعود اليكم اليوم لأكمال الحلقات حول السيكوال سيرفر 2012 وما جاء به من جديد التي تسر الصديق وتبغض العدو ^_^ لمتابعة الحلقة الاولى (http://vb4arb.com/vb/showthread.php?362-...erver-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/....110).aspx
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الحلقة الثانية: الجديد في السيكوال سيرفر 2012 - بواسطة كلكامش الألكتروني - 02-10-12, 12:38 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سيرفر sql بطئ جدا عند انقطاع النت محمد عاطف 0 375 09-09-24, 01:19 AM
آخر رد: محمد عاطف
  مشكلة حفظ استعلام sql server 2012 an9e1u2 1 2,587 17-12-17, 10:17 PM
آخر رد: ahmedmansour
  ترحيل البيانات من السيرفر المحلي الى الويب سيرفر max_1978 1 2,452 16-01-17, 09:01 PM
آخر رد: مساعدة
  كيفية عمل ftb للاسيكوال سيرفر WAEL ABED 1 2,447 31-10-16, 05:04 AM
آخر رد: أبو عمر
  [مقال] ترحيل البيانات من السيرفر المحلي الى الويب سيرفر - Transfer Data From Local To web ابو ليلى 4 14,527 07-09-16, 03:51 AM
آخر رد: ابو ليلى
  [سلسلة تعليمية] فيديو يلخص احتراف التعامل مع السيكوال سيرفر من البداية tarek 0 2,761 03-05-16, 04:00 AM
آخر رد: tarek
  [SQL] SQL SERVER 2012 adel27 1 3,238 21-12-15, 09:08 PM
آخر رد: عمر المستشار
  File table in SQL Server 2012 عمر المستشار 0 4,065 10-12-13, 11:33 AM
آخر رد: عمر المستشار
  الحلقة الثالثة: الجديد في السيكوال سيرفر 2012 شرح دالة ال Format عمر المستشار 6 6,090 27-10-12, 09:45 AM
آخر رد: عمر المستشار
  الإسطوانة الأروع لتعلم السيكوال سيرفر 2000 RaggiTech 0 2,733 21-10-12, 07:20 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: