none
trigger RRS feed

  • שאלה

  • שלום לכולם,

    אני מעוניין לעדכן את טבלת  rides_to_register בכל פעם שמוכנס לטבלת rides  הערכים הרלוונטים אליה.(code_ride,user_serial_number)

    אני מודע קצת נתקעתי הנה הקוד שכתבתי אשמח לעזרה:

     

    create trigger T_update_rides_to_register

    on dbo.rides

    for insert

    as

    update dbo.rides_to_register

    set code_ride=(select  top 1 code_ride from dbo.rides order by code_ride desc ),user_serial_number=dbo.rides.user_serial_number

    where EXISTS(select  top 1  code_ride  from dbo.rides order by code_ride desc)

    go

     


     

    http://img837.imageshack.us/i/sqlb.jpg

     

     


    http://il.linkedin.com/pub/adi-tabak/21/a47/a51
    יום שלישי 11 ינואר 2011 09:13

תשובות

  • הי,

    תקרא ב- books online על טריגרים או בלינק http://www.sqlteam.com/article/an-introduction-to-triggers-part-i.

    בהנחה שנכנסות רשומות אחת אחת לטבלה, ולא bulk insert , אתה יכול לממש את בקוד למטה.

    במידה ויש bulk insert אתה צריך לעשות Join בין טבלת ה- Rides_to_register עם ה - Inserted על טבלת rides.

    אני בטוח שאם תקרא ב- Books Online על טריגרים תפתור את הבעיה מיידית.

    update

    dbo.rides_to_register

    set

     

    code_ride = INS.code_ride

    user_serial_number = INS.user_serial_number

    From

    inserted INS

    Where

    <condition that match the rows from rides_to_register and rides>

     

    בהצלחה

     


    אסף שלם
    • סומן כתשובה על-ידי Ami Levin יום רביעי 26 ינואר 2011 12:02
    יום שלישי 11 ינואר 2011 09:28

כל התגובות

  • הי,

    תקרא ב- books online על טריגרים או בלינק http://www.sqlteam.com/article/an-introduction-to-triggers-part-i.

    בהנחה שנכנסות רשומות אחת אחת לטבלה, ולא bulk insert , אתה יכול לממש את בקוד למטה.

    במידה ויש bulk insert אתה צריך לעשות Join בין טבלת ה- Rides_to_register עם ה - Inserted על טבלת rides.

    אני בטוח שאם תקרא ב- Books Online על טריגרים תפתור את הבעיה מיידית.

    update

    dbo.rides_to_register

    set

     

    code_ride = INS.code_ride

    user_serial_number = INS.user_serial_number

    From

    inserted INS

    Where

    <condition that match the rows from rides_to_register and rides>

     

    בהצלחה

     


    אסף שלם
    • סומן כתשובה על-ידי Ami Levin יום רביעי 26 ינואר 2011 12:02
    יום שלישי 11 ינואר 2011 09:28
  • היי אסף

    אני מנסה להריץ את הטריגר:

    create  trigger T_update_rides_to_register

    on  dbo.rides

    for insert

    as

    update dbo.rides_to_register

    set code_ride = INS.code_ride,

    user_serial_number = INS.user_serial_number

    From inserted.INS  where  (dbo.rides.code_ride=dbo.rides_to_register.code_ride and dbo.rides.user_serial_number=dbo.rides_to_register.user_serial_number)

    go

    ואני מקבל את השגיאה הבאה:

    Msg 208, Level 16, State 1, Procedure T_update_rides_to_register, Line 5

    Invalid object name 'inserted.INS'.

     

    ההרצה של הטריגר עובדת אבל כשאני מנסה להכניס נתונים לride  אני מקבל את השגיאה.

    תודה על העזרה :-)

     


    http://il.linkedin.com/pub/adi-tabak/21/a47/a51
    יום שלישי 11 ינואר 2011 14:37
  • הי,

    לא Inserted.INS

    Inerted INS, בלי נקודה, היינו alias name עבור "טבלת" inserted.

    תקשר עם יש בעיה 0542208649


    אסף שלם
    יום שלישי 11 ינואר 2011 14:50