چگونه خطای 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 میکنه.
کارشناس ارشد شبکه مایکروسافت
فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود