تعديل الدالة ALTER FUNCTION في SQL

من موسوعة حسوب
< SQL
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

يستخدم هذا الأمر لتعديل تعريف دالة مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION، وله الصيغ الآتية:

ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    RENAME TO new_name;

لإعادة تسمية الدالة name (والتي معاملاتها محددة بالنوع argmode والاسم argname ونوع البيانات argtype) باسم جديد new_name.

ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    OWNER TO { new_owner | CURRENT_USER | SESSION_USER };

لنقل ملكية الدالة name (والتي معاملاتها محددة بالنوع argmode والاسم argname ونوع البيانات argtype) إلى مالك جديد new_owner أو المستخدم الحالي CURRENT_USER. أما لتغيير مهمة الدالة (بنيتها الداخلية body) فيُستخدم الأمر بالشكل:

ALTER FUNCTION name   ( [ [ argmode ] [ argname ] argtype [, ...] ] )  
RETURNS return_data_type  
    [ AS ]  
    BEGIN   
        function_body   
        RETURN scalar_expression  
    END  
;

إذ يمكن تعديل أيّ من الخصائص الواردة بتعريف الدالة كما هو الحال عند إنشائها عبر الأمر CREATE FUNCTION.

أمثلة

لإعادة تسمية الدالة sqrt لتصبح باسم square_root، يستخدم الأمر:

ALTER FUNCTION sqrt(integer) RENAME TO square_root;

لتعديل الدالة get_count المُنشأة مسبقًا لتعيد عدد السجلات التي يكون فيها معدل الطالب أكبر من 2 بدلًا من العدد الإجمالي، يستخدم الأمر:

ALTER FUNCTION get_count (OUT num INTEGER) AS
SELECT COUNT(*) INTO num FROM students
WHERE GPA>2;

التوافقية

SQLServer SQLite Oracle PostgreSQL MySQL
نعم لا نعم نعم نعم

يقتصر هذا الأمر في محرك Oracle على إعادة ترجمة recompile الدالة من خلال الكلمة المفتاحية COMPILE.

مصادر