بتاريخ: 21 مارس 200916 سنة comment_151796 السلام عليكم ورحمة الله وبركاتهال Sequences يعادل ال AutoNumber في ال Access ولكن لدي ملاحظه لماذا عند اضافته مثلا لجدول وهو Insert Into STUDENT Values( 'Ahmad',SEQ_NO_TESTING.NextVal) سوف يظهر الاسم بهذه الطريقة 1 Ahmadوعند اضافة اكثر من اسم سوف يكون النتائج هكذا (مع العلم ان زيادة ال Sequences ب 1 في كل مرة يتم فيها الاضافة)Ahmad 1Hadi 2Aziz 3Saleh 4Hani 5وسؤالي هو تخيلو معي عند حذف اسم Hani من الجدول ومن ثم اضافة اسم جديد وهو Omar سوف تكون النتائج كالتاليAhmad 1Hadi 2Aziz 3Saleh 4Omar 6 لماذا عمر رقم 6 الا توجد طريقة لعمل عمر رقم 5 ؟؟ ارجو الرد من سيادتكم لاني احتاج الطريقة في المشروع لحساب عددهمبارك الله فيكم تقديم بلاغ
بتاريخ: 23 مارس 200916 سنة comment_152055 أخي العزيز المفروض عند الاضافة تأخذ Max للرقم وتقوم اضافة عليه واحد قبل الاضافة تقديم بلاغ
بتاريخ: 23 مارس 200916 سنة comment_152061 اخي الكريم فعلا افضل طريقه لعمل هذا التسلسل هو عمل التالي كـود SQLselect max(coulm_name+1 ) into coulm_name from dual ; when-create-record or pre-insert وهذان هما الtrigger الي ممكن تنفز فيهم ولكن لا اعتقد انك لما هاتمسح اي حد الارقام هترجع تاني وعلى فكرة السيكونس عندما يخرج الرقم لايستطيع ان يخرجه تاني تقديم بلاغ
بتاريخ: 24 مارس 200916 سنة comment_152099 السلام عليكم..هذه طريقة و لكن دون استخدام Sequence create or replace trigger tri_seq before insert on emp for each row declare cursor cur is select empno from emp order by empno; Pcount number:=0; Pcounter number:=1; begin select count(empno) into Pcount from emp; if Pcount=0 then :new.empno:=1; else for rec in cur loop if rec.empno<>Pcounter then :new.empno:=Pcounter; return; else Pcounter:=Pcounter+1; :new.empno:=Pcounter; end if; end loop; end if; end; / تقديم بلاغ
بتاريخ: 26 مارس 200916 سنة كاتب الموضوع comment_152260 جزاكم الله كل خير اخواني الكرام بارك الله فيكم على هذه المساعدة الجميلة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.