ورود

View Full Version : آموزش: اضافه کردن و حذف کردن ستون به جداول موجود



tazarvmmr
شنبه 19 آذر 1390, 16:17 عصر
سلام
یکی از دوستان سوال کرده بود که چطور میتونه بدون اینکه جدول موجود رو حذف کنه فیلدی رو به اون اضافه یا از اون کم کرد:

همونطور که میدونید این کار بسیار ساده هستش، دستور زیر برای اضافه کردن یک فیلد استفاده میشه:


ALTER TABLE table_name
ADD column_name datatype


و این دستور برای حذف یک ستون:

ALTER TABLE table_name
DROP COLUMN column_name


و این دستور هم برای تغییر نوع یک فیلد موجود:

ALTER TABLE table_name
ALTER COLUMN column_name datatype


زمانی که یک فیلد جدید اضافه میکنیم یا نوع داده یک فیلد رو تغییر میدیم میشه چیزهای دیگری رو هم مثل اینکه مقدار پیش فرض داشته باشه یا خیر هم در نظر گرفت شکل کلی دستور به این شکل هست:


ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}


مثال:

ALTER TABLE myTableName
ADD MyNewDatetypeField smalldatetime NULL DEFAULT(GetDate()) With VALUES



عبارت With Values در مثال فوق باعث میشه که مقدار پیش فرض برای همه ردیفهای موجود ثبت بشه و اگر این عبارت رو نگذاریم برای همه ردیفها ستون جدید مقدار Null خواهند گرفت

مقدار یا تابعی که جلوی عبارت Default اومده مقدار پیش فرض فیلد جدید رو مشخص میکنه.

من یک برنامه کوچک با دلفی نوشته بودم قبلا که شما میتونید فایل اسکریپت تغییرات جداولتون رو بهش بدید و این برنامه تمام تغییرات رو روی دیتابیس اعمال میکنه

فقط باید فایل اسکریپت رو با پسوند txt ذخیره کنین و تنظیمات لازم رو در Config.ini انجام بدید.

دانلود فایل (http://www.4shared.com/file/Mw81QjQl/SQLDBProducer.html)

فقط مراقب باشید که دیتابیستون رو نابود نکنید! چون وقتی کلید شروع رو کلیک کنین یا اگر توی Config.ini مقدار AutoStart رو برابر یک قرار بدید به محض اجرای برنامه تغییرات رو اعمال میکنه و اگر مثلا در فایل اسگریپت از عبارت Drop Database استفاده کرده باشید دیگه کار تمومه.

این برنامه میتونه برای کسانی که در ورژنهای جدید برنامشون نیاز هست دیتابیسشون رو UpToDate کنن مورد استفاده داشته باشه و یا اینکه برای نصب بانک اطلاعاتی موقع نصب برنامشون این برنامه رو فراخوانی کنن و اسکریپت دیتابیسشون رو به برنامه بدن.

سورس برنامه با دلفی موجود است و اگر کسی خواست میتونه بگه که براش آپلود کنم.

(البته ممکنه Drop Database رو به خاطر اینکه به اون کانکت شده اجرا نکنه ولی ریسک امتحانش با من نیست! :چشمک: )

HAMRAHSOFT.IR
شنبه 19 آذر 1390, 17:00 عصر
تشکر دوست خوب ولی امکان داره سور برنامه کهنوشتبد را به زبان دانت بزارید

tazarvmmr
شنبه 19 آذر 1390, 17:06 عصر
اگر سورس دلفی رو بخواید میتونم همین الان براتون بزارم ولی در مورد اینکه تبدیلش کنم به دات نت باید صبر کنید تا وقت اینکارو پیدا کنم، البته منطق برنامه بسیار ساده تر از اون چیزی هست که ممکنه به نظر برسه و پیاده سازیش هم بسیار راحته، پیشنهاد میکنم اگر خواستید سورس دلفیشو نگاه کنید مطمعنم به راحتی میتونید دات نتش رو بنویسید.

HAMRAHSOFT.IR
شنبه 19 آذر 1390, 17:10 عصر
منون میشم بزارید یک نمونه اسکریپتم بزارید بازم تشکر

tazarvmmr
شنبه 19 آذر 1390, 17:17 عصر
لینک دانلود (http://www.4shared.com/file/S75NmIgu/SQLDBProducer-Source_Delphi_20.html)سورس

البته اسکریپت رو باید بگردم ببینم دارم یا نه! ولی خودتون این چند خطو توی یک فایل txt ذخیره کنین و تست کنین


ALTER TABLE myTableName
ADD MyNewDatetypeField smalldatetime NULL DEFAULT(GetDate()) With VALUES
Go


فقط اسم جدول و فیلد مورد نظرتون رو تغییر بدید

tazarvmmr
یک شنبه 20 آذر 1390, 00:03 صبح
یک توضیح یادم رفت بدم، توی این برنامه شما از طریق Config.ini میتونید کپشن بالای فرم رو به متن دلخواه تغییر بدین و همینطور Bidi Mode و زبان هم قابل تعریفه، اگر خیلی براتون مهم نیست میتونید تنظیمات Config رو مطابق نظر خودتون انجام بدید و همین فایل رو برای آپدیت جدولتون برای مشتریتون بفرستید، به نظرم نیازی نیست که از ابتدا بنویسیدش