משיב מוביל
בעיה עם unique constraint

שאלה
-
בוקר טוב לכולם!
יש לי בעיה מאד מוזרה, של לי unique constraint לטבלה:
ALTER TABLE [dbo].[pages] ADD CONSTRAINT [uc_pages_url] UNIQUE NONCLUSTERED ( [wId] ASC, [url] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO
כשאני מנסה ליצור דפים חדשים לטבלה, נזרק לי exception:
Violation of UNIQUE KEY constraint 'uc_pages_url'. Cannot insert duplicate key in object 'dbo.pages'. The duplicate key value is (1, http://www.thesite.org.il/P31897/).
מה שמוזר פה, זה שלא את הדף הזה ניסיתי להכניס לטבלה.
הדף הזה אמנם קיים, אבל הדף שניסיתי להכניס לא קיים.
אני לא מבינה למה זה מקשר בין 2 הדפים.
אשמח לעזרה!
תודה!!!
שרה.
תשובות
-
הי שרה,
אני לא מבין יותר מדי ב-LINQ, אבל אני מניח שהבעיה היא שכשאת עושה "SaveChanges", את מכניסה לא רק את הדף האחרון שיצרת, אלא עוד דפים אחרים שנמצאים כבר בתוך "db.pages". כנראה שאת מכניסה גם את הדף שהכנסת בפעם הקודמת, ולכן את מקבלת "Violation of Unique Key".
מקווה שעזרתי...
-----------------------------
גיא גלנצר
יועץ ומדריך SQL Server
Madeira - SQL Server Services
http://www.madeira.co.il- סומן כתשובה על-ידי ssfrank יום רביעי 28 מאי 2014 05:15
כל התגובות
-
-
-
תודה על העזרה!!!!
זו הייתה יצירה דרך שאילתת linq.
var dbPage = new pages(); dbPage.wId = data.wsId; dbPage.url = newPage.url; bPage.note = newPage.note; dbPage.status = 1; db.pages.AddObject(dbPage); db.SaveChanges();
מה שהכי מוזר, כשעשיתי את אותו הדבר עם Prepare Statement (שאילתת insert רגילה) זה כן עבד.
כמובן שהפרמטרים היו אותם פרמטרים.
שוב תודה!!!!!
שרה.
-
הי שרה,
אני לא מבין יותר מדי ב-LINQ, אבל אני מניח שהבעיה היא שכשאת עושה "SaveChanges", את מכניסה לא רק את הדף האחרון שיצרת, אלא עוד דפים אחרים שנמצאים כבר בתוך "db.pages". כנראה שאת מכניסה גם את הדף שהכנסת בפעם הקודמת, ולכן את מקבלת "Violation of Unique Key".
מקווה שעזרתי...
-----------------------------
גיא גלנצר
יועץ ומדריך SQL Server
Madeira - SQL Server Services
http://www.madeira.co.il- סומן כתשובה על-ידי ssfrank יום רביעי 28 מאי 2014 05:15
-