Cannot truncate table 'TableName' because it is being referenced by a FOREIGN KEY constraint.

6 במרץ 2012

תגיות: ,
תגובה אחת


 


כשרוצים למחוק מידע מטבלאות, לעיתים רוצים ממש לנקות את הטבלה, ובמידה ויש עמודת מספר רץ (נניח Id שמוגדר כ – Identity) נרצה לא רק למחוק את השורות, אלא גם לאפס את המספר הרץ כך שהמספור יתחיל מההתחלה.

 

הצורה הפשוטה היא להשתמש ב – truncate במקום delete, כך:

 



truncate table Color


 

הבעייה תהיה, במידה ויש קשר בין טבלה זו לטבלאות אחרות נקבל את הודעת השגיאה הבאה: Cannot truncate table 'Color' because it is being referenced by a FOREIGN KEY constraint.

 

 

כדי לאפס בכל זאת את המספר הרץ, נכתוב את הקוד הבא

 



delete from Color


DBCC CHECKIDENT (Color, RESEED, 0)


 

כעת המידע ימחק, והשורה הבאה שתיכנס תהיה עם הערך 1 בעמודת Id.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

תגובה אחת

  1. אמיר8 במרץ 2012 ב 0:46

    חבר שלי היה אצלך בקורס לפני כחודש ופשוט חזר מרוצה שאי אפשר לתאר…זה ישמע כפרסומת אבל זו לא פעם ראשונה שאני שומע שאנשים חוזרים מאוד מרוצים מקורסים בסלע. אתם פשוט מקצוענים ובייחוד אתה.

    הגב