الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لدى مشكلة فى ال Trigger

بدأه alfel في 7 أكتوبر 2008 · 6 رد · 770 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go


ALTER TRIGGER [Falmer] ON [dbo].[Income] 
   AFTER INSERT
AS Declare  @stn_no int,@st_quan  bigint,@st_sanf   bigint

DECLARE c1 CURSOR FOR

select Income.sotre_no,Income.plus_quan,store.sanf_quan from dbo.Income join dbo.store on store.store_no=Income.sotre_no 
begin OPEN c1
FETCH NEXT FROM c1 INTO @stn_no, @st_quan ,@st_sanf
update dbo.Store set store.sanf_quan=@st_sanf+@st_quan where store.store_no=@stn_no
CLOSE c1
DEALLOCATE c1
end

ما هي مشكله هذا الكوددددددددددد

اريد الحل

تم تعديل هذه المشاركة بواسطة Night Coder في 7 أكتوبر 2008 في 10:26

#2

طيب فيه رسالة خطأ او نتيجة غير متوقعة؟!!

#3

لا داعي لاستخدام Cursor وايضا بدل الجدول income عليك استخدام الجدول الوهمي Inserted لمعرفة الاسطر التي تعدلت فقط في هذا الجدول وليس جميع الجدول

فيصبح عندك مايلي

 

 

[color= #0000FF;]ALTER [color= #0000FF;]TRIGGER [color= #808080;][Falmer[color= #808080;]] [color= #0000FF;]ON [color= #808080;][dbo[color= #808080;]].[color= #808080;][Income[color= #808080;]]

[color= #0000FF;]AFTER [color= #0000FF;]INSERT

[color= #0000FF;]AS 

[color= #0000FF;]BEGIN

 

[color= #0000FF;]SET [color= #0000FF;]NOCOUNT [color= #0000FF;]ON

 

[color= #0000FF;]DECLARE @stn_no [color= #0000FF;]INT,@st_quan [color= #0000FF;]BIGINT,@st_sanf [color= #0000FF;]BIGINT

 

 

[color= #0000FF;]SELECT @stn_no[color= #808080;]=sotre_no,@st_quan[color= #808080;]=plus_quan [color= #0000FF;]FROM  inserted   

 

[color= #0000FF;]UPDATE dbo.[color= #202020;]Store [color= #0000FF;]SET store.[color= #202020;]sanf_quan[color= #808080;]= sanf_quan [color= #808080;]+ @st_quan [color= #0000FF;]WHERE store.[color= #202020;]store_no[color= #808080;]=@stn_no

 

[color= #0000FF;]END
#4

شكرا ليك يا اخي جدا الف شكر ولكن انا عايز اعرف الفرق ؟؟؟

#6

اني اضع كيرسور او لا اضع وليه الكود التاني لم يعمل

#7

بالنسبة ل Cursor لا ينصح باستخدمها الا عند الضرورة لذلك وانت فعليا لا تحتاج الى المرور على مجموعة صفوف وانما على صف واحد فقط لذلك يمكن الاستعاضة عنها بالباراميتر وايضا المشكلة عندك كانت انك دائما ترجع اول صف في الجدول وليس الصف الذي تعدل

مواضيع مشابهة