ورود

View Full Version : ایجاد ستون جدید با مقدار پیش فرض بدون ایجاد constraint



pooya1072
سه شنبه 07 خرداد 1392, 19:01 عصر
سلام
من می خوام از طریق query یک ستون به جدول اضافه کنم به طوری که مقدار پیش فرض آن صفر باشه .(از نوع float) . اگه توی قسمت design این کار رو انجام بدم بدون مشکل توی قسمت Default Value or binding یه صفر میزارم . ولی اگه از طریق t-sql بخوام انجام بدم ظاهرا دو روش داره :


alter table arfeeds add mycolumn1 int not null default 0

و همچنین :


alter table arfeeds add mycolumn1 int default 0

که البته توی این حالت مقدار پیش فرض اعمال نمیشه . نمی دونم چرا ؟
ولی در هر دو حالت یک constraint ایجاد میشه که من نمی خوام ایجاد بشه .
حالا اگه ممکنه راهنمایی کنید که من چطور می تونم ستونی به جدولم اضافه کنم ( از طریق t-sql ) که:
اولا مقدار پیش فرض صفر باشه
دوما این ستون بتونه مقدار null رو هم بگیره
سوما پس از ایجاد ستون constraint به جدول اضافه نشه
ممنون

ali ghaemi
چهارشنبه 08 خرداد 1392, 19:57 عصر
تنظیم یک مقدار Default برای یک ستون ، حتما یک constraint برای شما ایجاد می کند و این موضوع اجتناب ناپذیر است اگر به نام کامل اون هم توجه کنید یک constraint است" SQL DEFAULT Constraint (http://www.w3schools.com/sql/sql_default.asp)"

create table tmp
(
id int
)

go
insert into tmp values (1),(2),(3)
go

alter table tmp add Age int default(0)
go
select * from tmp
go
insert into tmp values (4,default)
go
insert into tmp values (6,null)
go
select * from tmp
go
drop table tmp