כיצד לתקן את השגיאה 'לא ניתן להוסיף ערך מפורש לעמודת זהות בטבלה כאשר IDENTITY_INSERT מוגדר כבוי'?



נסה את הכלי שלנו לביטול בעיות

עמודת המפתח הראשית מוגדרת לעיתים קרובות לתוספת אוטומטית בעת בניית מסד נתונים של שרת SQL. מגבלת הזהות מוגדרת עבור עמודת המפתח הראשית לשם כך. המיקום ההתחלתי וצעד התוספת מועברים לעמודה IDENTITY כפרמטרים. ואז בכל פעם שמתווסף רשומה חדשה והכנסת זהות מוגדרת כ- OFF, הערך של העמודה IDENTITY גדל בשלב המוגדר מראש, בדרך כלל מספר. יתר על כן, המאפיין IDENTITY INSERT מוגדר ל- ON רק לטבלה אחת בפגישה אחת.



במאמר זה נדון בשגיאה 'לא ניתן להוסיף ערך מפורש לעמודת זהות בטבלה

כאשר IDENTITY_INSERT מוגדר כבוי ' כפי שמוצג מטה.



כיבוי 'הוספת IDENTITY' והכנסת נתונים ללא 'מזהה מפתח ראשוני' להצהרת הוספה



השגיאה מתעוררת כאשר המשתמש הגדיר את 'הכנסת זהות' למצב 'OFF'. ואז מנסה להכניס נתונים לעמודת המפתח הראשית של הטבלה באופן מפורש. ניתן להסביר זאת באמצעות הדוגמה הבאה.

יצירת מסד נתונים וטבלה:

ראשית, צור מסד נתונים בשם 'appuals'.

יצירת מסד נתונים בשם 'appuals'.



צור טבלה בשם 'אדם' באמצעות הקוד הבא. שולחן בנוי באמצעות 'זהות מפתח ראשונית'

צור אדם שולחן (מזהה INT IDENTITY (1, 1), שם פרטי VARCHAR (MAX), שם משפחה VARCHAR (MAX))

יצירת טבלה בשם 'אדם'

תחביר להגדרת 'זיהוי_הכנסת | עַל':

ה 'הגדר את הכנסת הזהות | עַל' יעזור לנו לפתור שגיאה זו. התחביר הנכון להצהרה זו הוא להלן.

הגדר את IDENTITY_INSERT. .
עַל

ואילו הטיעון הראשון הוא שם מסד הנתונים בו נמצאת הטבלה. הטיעון השני מראה הוא הסכימה אליה שייך אותה טבלה שאת ערך זהותה יש להגדיר עַל אוֹ כבוי . הטיעון השלישי

היא הטבלה עם עמודת הזהות.

יש ביסודן שתי דרכים שונות להכנסת נתונים לטבלה ללא שגיאות. אלה נחשבים כפתרון לשגיאה זו ויידונו להלן.

שגיאה 1: כבה את זהות ההכנסה

במקרה הראשון נכניס נתונים לטבלה עם ה- 'הוספה של זהות' מכוון ל 'כבוי' . לכן, אם המזהה קיים בהצהרת INSERT, תקבל את השגיאה 'לא ניתן להוסיף ערך מפורש לעמודת זהות בטבלה 'אדם' כאשר IDENTITY_INSERT מוגדר כ- OFF.

בצע את הקוד הבא בכרטיסיית השאילתות.

כבה את האדם זהות_הכנסה; הכנס לערכי אדם (מזהה, שם פרטי, שם משפחה) (3, 'סאדיה