שלום
כשיש מפתח ראשי או אינדקס ייחודי בטבלה, אזי כאשר מפעילים שאילתה שמכניסה ערכים כפולים, הערכים שמצליחים להיכנס ראשונים לטבלה נקלטים, ואילו הבאים בתור נתקלים בחומה בצורה בדמות אינדקס ייחודי, ונמנעים מלכנוס אל הקודש פנימה אל הטבלה.
והנה בשיטה זו אני משתמש לפעמים לכתחילה, כאשר אני מעוניין בערכים ייחודיים, אינני חוסם את הערכים ברמת השאילתה (שאילתת הוספה) אלא ברמת הטבלה, וכך אני חוסך לעצמי כאב ראש רב ונוסחאות SQL מורכבות ומותנות ללא גבול וקץ ותכלית.
כעת גם SQL server מוכן לשתף פעולה בדבר כזה, אולם כל זה בשאילתות הוספה שאני עושה דרך odbc לטבלה של ממש, אני פשוט מבטל את ההודעה אודות כך שאי אפשר להוסיף את כל הרשומות וכולי, והמשתמש לא מרגיש כלום ובא לציון גואל.
דא עקא, כאשר אני מעוניין להשתמש בזה במשתנה טבלה, שאפשר גם אפשר לעשות בו מפתח ייחודי (במקרה שלי מורכב מכמה שדות אבל זה לא ממש משנה) ואני רוצה במהלך ריצת הפרוצדורה לבצע הוספות שונות, אשר אם קיימות, הנה מה טוב ולא יתווספו, ואם אינם קיימות, אזי מה נעים יתווספו גם יתווספו. והנה לפתע הוא תוקע את הפרוצדורה, בגלל השטות הזאת, ובגלל זה אני צריך עכשיו לעבוד קשה מאוד עם SQL שמבחינתי הקוד הופך להיות פחות אמין, הואיל והמטרה הסופית שלי היא אחת, שלא יהיה כפל בטבלה.
יאמר האומר שאפשר לעשות במקום מפתח ייחודי, מחיקה בסוף הקוד של הכפילויות, נו נו, לא יודע כבר מה יותר מלוכלך.
שורה תחתונה לתמצית השאלה, אני רוצה למנוע הודעות שגיאה, ופשוט שיכניס לטבלה מה שהוא יכול ומה שהוא לא יכול ישאיר בחוץ.
אם יש למישהו רעיון, זה יעזור מאוד.
תודה.

פורסם במקור בפורום CODE613 ב09/02/2014 00:56 (+02:00)