SQL Server - Section1 - User-Defined Functions (UDFs)
User-Defined Functions (UDFs) في SQL Server
في SQL Server، يمكنك إنشاء دوال خاصة بك تُعرف باسم User-Defined Functions (أو اختصارًا: UDF
).
🔹 تُستخدم الدوال لتغليف منطق معين يمكن إعادة استخدامه داخل الاستعلامات مثل SELECT
أو WHERE
أو حتى داخل JOIN
.
✅ أنواع User-Defined Functions
- Scalar Function: تُرجع قيمة واحدة (مثل int أو varchar)
- Table-Valued Function: تُرجع جدول (يمكن التعامل معه مثل أي جدول عادي في الاستعلامات)
🧮 مثال: Scalar Function
دالة تُرجع قيمة الضريبة بنسبة 10% من قيمة السعر:
CREATE FUNCTION dbo.GetTax (@Price decimal(10,2))
RETURNS decimal(10,2)
AS
BEGIN
RETURN @Price * 0.10
END;
✅ يمكنك استخدامها كالتالي:
SELECT ProductName, Price, dbo.GetTax(Price) AS Tax
FROM Products;
📋 مثال: Table-Valued Function
دالة تُرجع المنتجات الأعلى من سعر معين:
CREATE FUNCTION dbo.GetExpensiveProducts (@MinPrice decimal(10,2))
RETURNS TABLE
AS
RETURN
(
SELECT ProductID, ProductName, Price
FROM Products
WHERE Price > @MinPrice
);
✅ يمكن استخدامها هكذا:
SELECT * FROM dbo.GetExpensiveProducts(50);
📝 ملاحظات مهمة
- تبدأ أسماء الدوال دائمًا بـ
dbo.
كافتراضي. - لا يُسمح في بعض الدوال بتعديل البيانات (مثل
INSERT
أوUPDATE
داخل Scalar Functions). - يمكنك استخدام
ALTER FUNCTION
لتعديل دالة موجودة، أوDROP FUNCTION
لحذفها.
تعليقات
إرسال تعليق