ورود

View Full Version : مشکل در حذف یک فیلد با یک مقدار پیش فرض



forozeshfard
جمعه 16 مهر 1389, 14:34 عصر
سلام بر دوستان
من با دستور زیر یک فیلد به جدولم اضافه می کنم

(0) alter table table_name add age int not null default

که یک فیلید age به جدول من اضافه می کند
حالا می خواهم این فیلد را با دستور زیر حذف کنم که خطا می دهد

alter table table_name drop column age

نکته جالب این است که اگر برای فیلدم default تعریف نکنم با دستور بالا حذف می شود ولی با داشتن مقدار default نمی تواند فیلد را حذف کرد و خطا می دهد
ممنون می شوم راهنمایی کامل نمایید
با تشکر

بهنام بهمنی
جمعه 16 مهر 1389, 15:09 عصر
مقدار Default شما درواقع يک موجوذیت وابسته به آن فيلد است, لذا ابتدا باید آنرا حذف کنید و بعد خود فيلد را

forozeshfard
جمعه 16 مهر 1389, 17:30 عصر
سلام مجدد
نکنه در این است که من نمی دانم چگونه ابتدا باید این موجودیت را از بین ببرم
ممنون می شوم راهنمایی نمایید
با تشکر

بهنام بهمنی
جمعه 16 مهر 1389, 17:48 عصر
با استفاده از Query زير می توانید آن موجودیت را پيدا کنيد و بعد حذفش کنيد


select
col.name,
col.column_id,
col.default_object_id,
OBJECTPROPERTY(col.default_object_id, N'IsDefaultCnst') as is_defcnst,
dobj.name as def_name
from sys.columns col
left outer join sys.objects dobj
on dobj.object_id = col.default_object_id and dobj.type = 'D'
where col.object_id = object_id(N'dbo.test')
and dobj.name is not null

forozeshfard
جمعه 16 مهر 1389, 18:18 عصر
با سلام مجدد
جسارتا من ان موجودیت را می شناسم
آن موجودیت همان مقدار default یعنی صفر است
من چطور با یک کوئری آن مقدار default که صفر است را از بین ببرم
یعنی default value مقدار نداشته باشد اگر مقداری نداشته باشد راحت می توان آن فیلد را حذف کرد
مجدا از راهنمایی و همکاری شما سپاس گذارم
و ممنون می شوم مجددا راهنمایی نمایید

بهزادصادقی
شنبه 17 مهر 1389, 00:36 صبح
ممنون می شوم دوستان راهنمایی کنند

آقای بهمنی راهنمائی هایش کاملا درست است. ولی به نظر می رسد که شما به اندازه کافی اطلاعات مورد نیاز ندارید تا بتوانید از راهنمائی های ایشان استفاده کنید. لینک ذیل (به انگلیسی) اطلاعات جامعی را در مورد این مسئله درج کرده. ببینید می توانید استفاده کنید یا باز هم احتیاج به توضیج بیشتری داردید:

How to Drop an Un-named Constraint in SQL Server (http://www.nonhostile.com/howto-drop-unnamed-constraint-in-sql-server.asp)