تي-سكيول
Transact-SQL (T-SQL) هو امتداد احتكاري لشركتي مايكروسوفت وسايبيز إلى إس كيو إل. وإس كيو إل هو واختصار للغة الاستعلامات البنيوية، وهي لغة حاسوب قياسية طُورت في الأصل على يد شركة آي بي إم للاستعلام، وتغيير وتحديد قواعد البيانات العلائقية، باستخدام عبارات اعلانية. يمتد T-SQL على مستوى لغة الاستعلامات البنيوية ليشمل البرمجة الإجرائية، والمتغيرات المحلية ومختلف وظائف دعم معالجة السلسلة، ومعالجة التاريخ، والرياضيات وغيرهم، وأيضا تغييرات على جمل DELETE و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.