2014-09-24 127 views
2

我一直在爲已創建的列定義默認值。如何在SQL Server中使用alter設置列的默認值?

我創建了一個列,並沒有設置默認值,但後來我意識到我應該使用alter來設置默認值。所以我嘗試了,但沒有找到解決方案,但搜索不到所有的地方。

下面是代碼

create table stock 
( 
    item_name varchar(200), 
    item_code varchar(50), 
    Price int, 
    availabilty varchar(20), 

    constraint i_n unique(item_name), 
    constraint i_c primary key(item_code) 
) 

現在加入一些數據到它使用insert into後我無法添加默認約束在價格列。

請幫助我如何使用alter

在價格列中添加默認約束如果我添加約束這樣

alter table stock 
add constraint ID default '' (price) 

SSMS中檢測到它的錯誤,並表示

消息142,Level 15,State 2,Line 0
定義'TABLE'約束的語法不正確。

我使用SQL Server 2008的

謝謝

回答

3

您需要使用這樣的:

ALTER TABLE dbo.Stock 
ADD CONSTRAINT DF_Stock_Price DEFAULT(0) FOR Price 

由於PriceINT列,你無法定義''爲默認值 - 它必須是有效的INT值!

+0

謝謝SIR。你解決了我的問題。現在它是一個工作代碼。上帝祝福你。 – 2014-09-24 19:42:12

+0

還有一個問題。是否可以將這個默認值應用於多個列?我的意思是多個列的默認ID相同 – 2014-09-24 20:52:03

+0

@WaqarAdilMughal:否 - 如果需要,您必須分別爲每列創建一個默認約束條件 – 2014-09-25 04:49:07

相關問題