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.
مقالات ذات صلة
مراجع
- "T-SQL Improvements in SQL Server 2012", Jonathan Allen on Mar 19, 2012, infoq.com نسخة محفوظة 08 أغسطس 2016 على موقع واي باك مشين.
وصلات خارجية
- Sybase Transact-SQL User's Guide
- Transact-SQL Reference for SQL Server 2000 (MSDN)
- Transact-SQL Reference for SQL Server 2005 (MSDN)
- Transact-SQL Reference for SQL Server 2008 (MSDN)