تي-سكيول

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

انظر أيضا 
 SQL (ANSI)
 SQL Server (Microsoft)

مراجع

وصلات خارجية 
 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)

إس كيو إل