هذه المقالة أو بعض مقاطعها بحاجة لزيادة وتحسين المصادر.

تي-سكيول

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
Question book-new.svg
تحتاج هذه المقالة أو المقطع إلى مصادر ومراجع إضافية لتحسين وثوقيتها. قد ترد فيها أفكار ومعلومات من مصادر معتمدة دون ذكرها. رجاء، ساعد في تطوير هذه المقالة بإدراج المصادر المناسبة. (ديسمبر 2017)

Transact-SQL (T-SQL) هو امتداد احتكاري لشركتي مايكروسوفت وسايبيز إلى إس كيو إل.[1] وإس كيو إل هو واختصار للغة الاستعلامات البنيوية، وهي لغة حاسوب قياسية طُورت في الأصل على يد شركة آي بي إم للاستعلام، وتغيير وتحديد قواعد البيانات العلائقية، باستخدام عبارات اعلانية. يمتد T-SQL على مستوى لغة الاستعلامات البنيوية ليشمل البرمجة الإجرائية، والمتغيرات المحلية ومختلف وظائف دعم معالجة السلسلة، ومعالجة التاريخ، والرياضيات وغيرهم، وأيضا تغييرات على جمل حذف وUPDATE. هذه الخصائص الإضافية تجعل Transact-SQ كامل االتورنغ. ان Transact-SQL هو أساسي لاستخدام خادم مايكروسوفت إس كيو إل. وجميع التطبيقات التي تتصل مع مثيل من خادم إس كيو إل تقوم بالتصال عن طريق إرسال جمل Transact-SQL إلى الخادم، بغض النظر عن واجهة المستخدم التابعة للتطبيق.

التحكم بالتدفق[عدل]

تتضمن الكلمات الرئيسية للتحكم بالتدفق في BEGIN وEND وBREAK, CONTINUE وGOTO وIF and ELSE وRETURN, WAITFOR وWHILE.

تسمح IF و ELSE بتنفيذ مشروط. وهذه الجملة المُعدة ستقوم بطباعة " It is the weekend" إذا كان التاريخ الحالي هو يوم عطلة نهاية الأسبوع، أو " It is a weekday" إذا كان التاريخ الحالي هو يوم من أيام الأسبوع.

IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
   PRINT 'It is the weekend.'
ELSE
   PRINT 'It is a weekday.'

ترمز BEGIN وEND إلى كتلة من الجمل. إذا كان التحكم في أكثر من جملة واحدة بواسطة الشرطي في المثال أعلاه، يمكننا استخدام BEGIN وEND كهذا:

IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
BEGIN
   PRINT 'It is the weekend.'
   PRINT 'Get some rest!'
END
ELSE
BEGIN
   PRINT 'It is a weekday.'
   PRINT 'Get to work!'
END

وسوف تنتظر WAITFOR لمدة محددة من الوقت، أو حتى وقت محدد من اليوم. ويمكن استخدام الجملة لتأخير أو عرقلة التنفيذ حتى الوقت المحدد.

وتستخدم RETURN في العودة إلى الوراء فورا من إجراء تخزيني أو دالة.

تنهي BREAK حلقة WHILE، في حين تسبب CONTINUE تنفيذ التكرار التالي من الحلقة. تم إعطاء مثال من حلقة WHILE أدناه.

DECLARE @i nvarchar(50)
SET @i = 0

WHILE @i < 5
BEGIN
   PRINT 'Hello world.'
   SET @i = @i + 1
END

تغييرات جمل DELETE و UPDATE[عدل]

في Transact-SQL، كلا من جمل DELETE و UPDATE تسمح بإضافة تابعة FROM، والتي تسمح بإدراج المفاصل. يحذف هذا المثال كافة المستخدمين الذين تم وضع علامة "خمول" بجوارهم.

DELETE users 
  FROM users as u
  JOIN user_flags as f
    ON u.id=f.id
 WHERE f.name = 'Idle'

BULK INSERT[عدل]

BULK INSERT هي جملة في Transact-SQL تنفذ عملية تحميل البيانات الضخمة، وإدراج صفوف متعددة في جدول، وقراءة البيانات من ملف تسلسل خارجي. وينتج من جراء استخدام BULK INSERT أداء أفضل من العمليات التي تصدر قضية جمل INSERT فردية لكل صف يتم إضافته. المزيد من التفاصيل متاحة على الصفحة Microsoft's MSDN page.

أنظر أيضا[عدل]

مراجع[عدل]

  1. ^ "T-SQL Improvements in SQL Server 2012", Jonathan Allen on Mar 19, 2012, infoq.com نسخة محفوظة 08 أغسطس 2016 على موقع Wayback Machine.

وصلات خارجية[عدل]