CREATE FUNCTION GETNEXTID() RETURNS decimal(18,0) BEGIN Declare @NEXTID decimal(18,0); Set @NEXTID = 0 DECLARE max2 CURSOR READ_ONLY for Select max(bill_no)+ 1 as max1 from bill_no FETCH NEXT FROM max2 into @NEXTID Set @NEXTID = @NEXTID + 1 Insert Into bill (bill_no) Values (@NEXTID) RETURN @NEXTID END
لقد قم بكتابة هذه الدالة على ان تقوم بإظهار اكبر قيمة في حقل الأرقام ثم يقوم بإضافة العدد واحد ليتم توليد الرقم الجديد ومن ثم نقوم بعمل اضافة سجل جديد بالرقم الجديد ، وارجاع القيمة
السؤال الاول : يوجد خطأ في الامر insert ، الرجاء حل هذه المشكلة .
السؤال الثاني : هل يوجد حل اقوى وافضل من هذه الدالة لحل عملية توليد الترقيم مع العمل بانني اعمل في شبكة بها اكثر من 8 اشخاص .
السؤال الثالث : هل يمكنني ان استبدل هذه الدالة واقوم بادخالها في trigger وتقوم بنفس الوظيفة