View Full Version : مشکل در حذف یک فیلد با یک مقدار پیش فرض
  
forozeshfard
جمعه 16 مهر 1389, 15:34 عصر
سلام بر دوستان 
من با دستور زیر یک فیلد به جدولم اضافه می کنم 
            (0)  alter table  table_name  add   age  int   not null  default 
که یک فیلید age   به جدول من اضافه می کند 
حالا می خواهم این فیلد را با دستور زیر  حذف کنم که  خطا می دهد
alter table table_name   drop column  age
نکته جالب این است که اگر  برای فیلدم  default    تعریف نکنم با دستور بالا حذف می شود ولی با داشتن مقدار  default  نمی تواند فیلد را حذف کرد و خطا می دهد 
ممنون می شوم راهنمایی کامل نمایید 
با تشکر
بهنام بهمنی
جمعه 16 مهر 1389, 16:09 عصر
مقدار Default شما درواقع يک موجوذیت وابسته به آن فيلد است, لذا ابتدا باید آنرا حذف کنید و بعد خود فيلد را
forozeshfard
جمعه 16 مهر 1389, 18:30 عصر
سلام مجدد
نکنه در این است که من نمی دانم چگونه ابتدا باید این موجودیت را از بین ببرم 
ممنون می شوم راهنمایی نمایید 
با تشکر
بهنام بهمنی
جمعه 16 مهر 1389, 18: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, 19:18 عصر
با سلام مجدد
جسارتا من ان موجودیت را می شناسم 
آن موجودیت همان  مقدار   default   یعنی صفر است
من چطور با یک کوئری آن مقدار default  که صفر است را از بین ببرم 
یعنی default  value     مقدار نداشته باشد اگر مقداری نداشته باشد راحت می توان آن فیلد را حذف کرد 
مجدا از راهنمایی و همکاری شما سپاس گذارم 
و ممنون می شوم مجددا راهنمایی نمایید
بهزادصادقی
شنبه 17 مهر 1389, 01:36 صبح
ممنون می شوم دوستان راهنمایی کنند
آقای بهمنی راهنمائی هایش کاملا درست است. ولی به نظر می رسد که شما به اندازه کافی اطلاعات مورد نیاز ندارید تا بتوانید از راهنمائی های ایشان استفاده کنید. لینک ذیل (به انگلیسی) اطلاعات جامعی را در مورد این مسئله درج کرده. ببینید می توانید استفاده کنید یا باز هم احتیاج به توضیج بیشتری داردید:
How to Drop an Un-named Constraint in SQL Server (http://www.nonhostile.com/howto-drop-unnamed-constraint-in-sql-server.asp)
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.