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 رو به خاطر اینکه به اون کانکت شده اجرا نکنه ولی ریسک امتحانش با من نیست! :چشمک: )
یکی از دوستان سوال کرده بود که چطور میتونه بدون اینکه جدول موجود رو حذف کنه فیلدی رو به اون اضافه یا از اون کم کرد:
همونطور که میدونید این کار بسیار ساده هستش، دستور زیر برای اضافه کردن یک فیلد استفاده میشه:
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 رو به خاطر اینکه به اون کانکت شده اجرا نکنه ولی ریسک امتحانش با من نیست! :چشمک: )