نقل قول: آپدیت دستی رکورد
سلام.
وقتی که جدول شما Primary Key نداشته باشه و نشه هر Row رو بصورت Unique شناسایی کرد، امکان Update کردن Row وجود نخواهد داشت.
فرض کنید یه جدول داریم 2 تا فیلد داره و در این جدول هم 3 رکورد وجود داره که (حداقل) دو تا از این Row ها حاوی مقادیر یکسانی باشن.
حالا شما مقدار یکی از فیلدها رو در یکی از این دو Row تغییر میدید. SQL Server از کجا باید بدونه شما ردیف اول رو منظورتون بوده یا ردیف دوم رو؟
برای همین Update شما رو Rollback میکنه و نادیده میگیره.
برای رفع این مشکل یک کلید Unique به جدول اضافه کنید.
موفق باشید.
نقل قول: آپدیت دستی رکورد
نقل قول:
نوشته شده توسط
mehdi.mousavi
سلام.
وقتی که جدول شما Primary Key نداشته باشه و نشه هر Row رو بصورت Unique شناسایی کرد، امکان Update کردن Row وجود نخواهد داشت.
فرض کنید یه جدول داریم 2 تا فیلد داره و در این جدول هم 3 رکورد وجود داره که (حداقل) دو تا از این Row ها حاوی مقادیر یکسانی باشن.
حالا شما مقدار یکی از فیلدها رو در یکی از این دو Row تغییر میدید. SQL Server از کجا باید بدونه شما ردیف اول رو منظورتون بوده یا ردیف دوم رو؟
برای همین Update شما رو Rollback میکنه و نادیده میگیره.
برای رفع این مشکل یک کلید Unique به جدول اضافه کنید.
موفق باشید.
سلام
من کالمی رو که بخوام تغییر بدم یک مشکل ایجاد میشه. هیچ را حلی بجز طراحی دوباره جدول نیست.
مثلا برای تغییر نوع داده ها این ارور را میدهد.
'Sabt' table
- Warning: Data might be lost converting column 'Radif' from 'nchar(10)'.
نقل قول: آپدیت دستی رکورد
سلام.
نیازی به دستکاری فیلدهای فعلی جدول نیست. یک ID به جدول اضافه کنید، Nullable نباشه و اونو IDENTITY تعریف کنید (از نوع int).
سپس تغییرات رو ذخیره کنید تا فیلد جدیدی تحت عنوان ID به جدول اضافه بشه و بطور خودکار به هر ردیف یک شماره نسبت داده بشه.
به این ترتیب مشکل مرتفع میشه.
موفق باشید.
پاورقی: متوجه نشدم برای چی Data Type فیلدهای موجود رو میخواهید تغییر بدید!