UPDATE מתוחכם - הכיצד?

UPDATE מתוחכם - הכיצד?

שלום שלום. יש לי טבלה שאני כותב stored procedure שמטרתו לעשות לה UPDATE - כלומר יש לה משתנה לכל שדה, והיא פשוט מריצה UPDATE STATEMENT. נשאלת השאלה - האם יש דרך לגרום ל UPDATE להתעלם מכל הערכים שהם NULL, כדי שיהיה אפשר לקרוא לפרוצדורה ולעדכן רק חלק מהשדות בלי למלא את כל הערכים? המממ... ניסוח בעייתי... ננסה שוב. נגיד שיש לי 3 משתנים בפרצדורה ואת כולם אני מכניס למשפט UPDATE. אני רוצה שבמשפט UPDATE כל השדות שאני נותן להם ערך NULL יתעלמו מהעדכון. האם זה אפשרי? כשאני כותב עכשיו אני חושב על לעשות trigger שילכוד UPDATE ויבדוק את זה.... אבל אז כל פעם אני אעשה בדיקה על כל השדות (ויש יותר מ 3 מן הסתם
) אז זה יהיה לא-יעיל-משהו.... יש איזושהי דרך מובנית ב SQL לעשות את זה? תודה רבה!
 

eli_leiba

New member
יש ב sql server 2000 סוג טריגר חדש

שנקרא Instead of trigger קרא עליו ב BOL נראה לי שזה הפתרון עבורך
 

eli_leiba

New member
תעבוד אז עם update trigger רגיל

תמצא איפוא ב inserted יש nulls ובאותם שדות תחזיר חזרה מה שהיה ב deleted table
 

zivsh103

New member
אולי?

אני חושב שמשהו מקביל לפונקציה NVL באורקל. היא מקבלת 2 פרמטרים ומחזירה את הראשון אם אינו NULL, אחרת את השני. אם הפרמטר שלך הוא p והעמודה בטבלה t היא col אז זה משהו כמו update t set col values (nvl(p,col)) בהצלחה
 
תודה

אבל ככה בעצם כל פעם אני אעשה מלא IFים בכל עדכון של הטבלה. עדיף לי כבר פשוט לדאוג לשלוח כל פעם את כל הנתונים, כי בזמן העדכון גם ככה יהיה לי אותם אצלי כבר. תודה רבה על העזרה.
 
למעלה