چگونه خطای The row value(s) updated or deleted either do not make the row unique را رفع کنیم؟ در بانک اطلاعاتی SQL اگر جدولتون Primary key نداشته باشه هر ردیف یا Row به صورت یونیک یا Unique شناسایی میشه بنا براین اگر داده تکراری (حداقل دو ردیف) داشته باشید شما امکان آپدیت جدول رو ندارید یعنی نه تغییر در محتوای فیلد ها و نه پاک کردن اون ردیف که اگر این کا رو انجام بدید با پیغام زیر رو برو میشید.
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
No row was updated.
The data in row 3 was not committed.
Error Source: Microsoft.VisualStudio.DataTools.
Error Message: or they alter multiple rows(3 rows).
Correct the errors and retry or press ESC to cancel the change(s).
یه مثال میزنم تا قابل درک باشه :
به فرض ما یک جدول داریم که 2 تا فیلد داره و همچنین 3 رکورد داخلش ثبت شده حالا دو تا از این ردیف ها مقادیرشون با هم یکسان هست اگر بخواهیم تغییر در اون محتوای تکراری بدیم یا یکی از اون ردیف ها رو پاک کنیم SQL از کجا باید متوجه بشه شما ردیف اول منظورتون هست یا دوم؟ به همین علت هست که update شما رو Rollback کرده و با اون خطا مواجه میشید.
جهت رفع مشکل فوق میتونید یک کلید Unique به جدول اضافه کنید اما این کار قبل از ورود داده ها به جدول هست اگر این کار رو قبل از ورود داده ها انجام دهید مشکلی نست اما بعدش بخواهید این کار رو کنید با خطا مواجه میشید و نمیتونید یکی از فیلد ها رو unique کنید ، اما راه دیگه ای هم هست اینکه مثلاً یک ID به جدول اضافه کرده ، Allow Nulls تیک نخورده باشه و سپس اونو IDENTITY تعریف کنید از نوع int که هر سری خودش اتوماتیک یک واحد بهش اضافه کنه اینجوری SQL بدون اررور محتوای جدول شما رو Update میکنه.