PDA

View Full Version : ویرایش فیلد پرایمری کلید



behnam_dr
سه شنبه 19 شهریور 1387, 21:21 عصر
دوستان من با دستور update مقدار یکسری فیلدها رو باید تغییر بدهم همه فیلدها تغییر میکنند اما فیلدی که کلید هست غیر قابل تغییر است ببینید دستور رو بصورت زیر کار کردم :در صورت غیر کلید بودن مشکل ندارم اما در صورتی که فیلد کلید است چه کار باید بکنم به نظر شما؟
خودم یه راه حل به ذهنم رسید و اون اینکه ساختار تیبل ام رو دستکاری کنم ! طوری که فیلد کلیدم رو از حالت کلید بردارم و تغییر رو انجام بدم و بعد به حالت کلید برگردونم اما چه طور این کارو بکنم آیا با دستور Alter Table میشه این کارو کرد ؟اگه میشه انجام داد .. به چه صورت ؟
یا اگر راه حل بهتری دارید بفرمائید؟
DataModule1.ADOQuery1.SQL.Add('Update add_time Set Person_code='''+(MaskEdit1.Text)+''' where person_code='''+(dbtext1.caption)+'''');

jaza_sa
چهارشنبه 20 شهریور 1387, 00:32 صبح
ممکنه کلیدی که انتخاب کردید Auto Increment باشه ، دراین صورت نمیتونید اون فیلد رو آپدیت کنید
ولی در غیر این حالت مشکلی نداره
یا شاید T-SQL که میفرستید مشکل داشته باشه ...

behnam_dr
چهارشنبه 20 شهریور 1387, 09:30 صبح
خیر increment نیست خواهش میکنم راهنمائی کنید دوستان

omid1240
چهارشنبه 20 شهریور 1387, 11:02 صبح
ممکنه که دارید سطر تکراری با توجه به کلید در جدول ایجاد می کیند

behnam_dr
چهارشنبه 20 شهریور 1387, 15:16 عصر
دوست عزیزomid 1240 ممنون از راهنمائیتون ; اما من عرض کردم داده ای که update میکنم تغییر نمیکنه نگفتم خطا میده .

SYNDROME
چهارشنبه 20 شهریور 1387, 18:51 عصر
دوست عزیزomid 1240 ممنون از راهنمائیتون ; اما من عرض کردم داده ای که update میکنم تغییر نمیکنه نگفتم خطا میده .
روی بانکتان Trigger دارید؟
آیا به طور معمول می توانید به وسیله دستی مقدار را تغییر دهید؟
موفق باشید

omid1240
سه شنبه 02 مهر 1387, 09:57 صبح
روی بانکتان Trigger دارید؟
آیا به طور معمول می توانید به وسیله دستی مقدار را تغییر دهید


درسته اگه Trigger دارید و یا اگه کلید های خارجی استفاده کردید و یا اگه Constrant های خاصی دارید بنویسید تا صورت مسئله روشن تر بشه