PDA

View Full Version : مشکل در تغییر جدول های SQL



Amin1991-2012
دوشنبه 30 تیر 1393, 12:17 عصر
سلام دوستان

نمیدونم سوالمو دارم جای مناسبی میپرسم یانه.ببخشید دیگه!

من تقریبا هنوز مبتدی ام!!!:لبخند: که با مشکل برخوردم وهرچی گشتم تو تاپیکا نتونستم چیزی پیدا کنم.

من یه جدول تو SQL ساختمو ذخیره کردم.الان میخوام نوع یکی از اون فیلدها یا ستون ها رو عوض کنم که اجازه نمیده، یا یه ستون جدید اضاف کردمو تیک نات نال رو برداشتم بازم اجازه ذخیره نمیده.
اینم بگم که فقط این جدول درپایگاه داده هست، این طور نیست که جدول های دیگه داشته باشمو با جدول های دیگه وابستگی داشته باشه.فقط یه جدول تنها!!!

اینم عکس پیامش:

121350


چیکارش کنم؟چرا اینجوریه؟

Davidd
دوشنبه 30 تیر 1393, 12:41 عصر
يكي از دلايلش اينه كه وقتي نوع يك ستون عوض ميشه SQL بايد داده هاي ذخيره شده در جدول تبديل كنه. اگه اين تبديل امكانپذير نباشه اين خطارو ميده. مثلا اگه نوع ستون varchar باشه و بخواي به int تغييرش بدي ممكنه بعضي مقادير داخل جدول قابل تبديل نباشند. راهش اينه كه اين مقاديرو اصلاح كني و يا ستون موردنظرو حذف كني و دوباره اضافه كني.

Amin1991-2012
دوشنبه 30 تیر 1393, 14:12 عصر
يكي از دلايلش اينه كه وقتي نوع يك ستون عوض ميشه SQL بايد داده هاي ذخيره شده در جدول تبديل كنه. اگه اين تبديل امكانپذير نباشه اين خطارو ميده. مثلا اگه نوع ستون varchar باشه و بخواي به int تغييرش بدي ممكنه بعضي مقادير داخل جدول قابل تبديل نباشند. راهش اينه كه اين مقاديرو اصلاح كني و يا ستون موردنظرو حذف كني و دوباره اضافه كني.

اصلا داده ای داخل جدول ها ذخیره نشده، ستون هم حذف کردم ولی وقتی دوباره اضافش میکنم و تیک نات نال رو برمیدارم بازم همین اخطارو میده.یعنی اجازه میده فقط ستون های جدید اضاف کنیم به شرط اینکه تیک نات نال خورده باشه یعنی نال ذخیره بشه.درغیراینصورت این پیامو میده.

Amin1991-2012
دوشنبه 30 تیر 1393, 14:19 عصر
دوستان حل شد.

دوست خوبمون anika تو انجمن دیگه ای بهم جواب دادنو درست شد.

اینم جوابشون که اگه عزیزدیگه ای به مشکل برخورد مشکلش حل بشه.

تو SQL وقتی فیلدهای یک جدول و طراحی می کنی و ذخیره می شند اگه بخوای تغییر بدی و یا یه فیلدی اضافه کنی می بینی بهت پیغام می ده که نمی تونی این کارو بکنی برا اینه که اولین باری که طراحی شده در منوی Tools گزینه ی Option تو قسمت Designer تیک مربوطه به Preventsavin changes that require tablere re-creation خورده که باید برش داری بعدش دیگه می تونی ذخیره ش کنی.

mokamel
جمعه 01 اسفند 1393, 12:31 عصر
کلا تو این انجمن کسی نیست که جواب درست یا بلد باشه یا بده

En_MK
جمعه 01 اسفند 1393, 14:50 عصر
:قهقهه::قهقهه::قهقهه: واقعا لطف دارید
امیدوارم توی زندگیتون اینجوری همه رو دسته بندی نکنید

safa55
جمعه 01 اسفند 1393, 16:55 عصر
دوست عزیز
این روش رو امتحان کنید : یک query ایجاد کنید و

alter table [T_name] alter column [col_name] [varchar] (50)

alter table [T_name] alter column [col_name] [bigint]
شما می تونید اول فیلد تون رو به varchar تبدیل کنید بعد به نوع مورد نظر تبدیل کنید.
شاید در زمان تبدیل خطا دهد می تونید اجازه دهید که فیلد مورد نظر خالی هم باشد.
کد بالا تست شده است.
موفق باشید.