ورود

View Full Version : UpDate روی فیلدی که کلید جدول است؟



idic1
دوشنبه 01 بهمن 1386, 08:52 صبح
با سلام

فیلدی که جزئی از کلید جدول است و یا خود به تنهائی کلید جدول است را چگونه میتوان به صورت گروهی Update کرد؟
فرض کنید در یک سیستم حسابداری ، کلید جدول ، دو فیلد "شماره سند" و "ردیف سند" میباشد
سندی دارای 20 ردیف است ولی ترتیب مقادیر فیلد "ردیف" ، مطلوب نمیباشد و میخواهیم آنرا فرضا بر اساس فیلد "مبلغ" به صورت گروهی مرتب کنیم
در صورت Update کردن گروهی فیلد "ردیف" ، خطای "کلید تکراری" رخ میدهد
لطفا دوستان مطلع راهمائی بفرمایند

ضمنا برای Update کردن از کرسر استفاده کردم با Begin Tran و Commit Tran که باز هم جواب نداد.

mehdia86
دوشنبه 01 بهمن 1386, 12:43 عصر
با سلام
یک روش اینه که اول به همین روشی که الان داری کار می کنی عمل کنی ولی بجای اینکه شماره ردیف رو از یک شروع کنی از مثلا یک شماره که هیچ وقت پیش نمی آد مثلا 100001 شروع کنی و بعد از این که کارت با Cursor تموم شد یک دستور update بنویسی که برای اون شماره سند هرچی ردیف هست رو 100000 ازش کم کنه

موفق باشید

idic1
سه شنبه 02 بهمن 1386, 08:31 صبح
با سلام
ممنون از جوابتان
اگر روش بهینه تری وجود ندارد، به همین روش انجام میدهم

سایر دوستان اگر روش دیگری وجود دارد بفرمایند

pesar irooni
پنج شنبه 18 بهمن 1386, 01:44 صبح
برای تغییر کلید اصلی باید ابتدا اون رکورد رو پاک کنی و بعد insert کنی
در اصل دستور update به همین گونه پیاده سازی شده. چون update جزو عملگر های اصلی sql نیست.