2013-05-10 78 views
-3

我在使用SQL ALTER語句添加NOT NULL列時出現問題。我是SQL的新手,所以任何指導都會很棒。我正在使用SQL Sever 2008,並且收到一個錯誤消息,指出列不能添加到表中,因爲它不允許空值,也不指定默認定義。我已經有了表中的數據,我只是想添加一個增量主鍵。SQL主鍵列ALTER語句

這是我使用,以產生列的SQL

ALTER TABLE EPUpdates.GenInfo_OpType3 
ADD KeyOpType Integer NOT NULL 

這是我使用,使之成爲主鍵/標識列

ALTER TABLE EPUpdates.GenInfo_OpType3 
ADD PRIMARY KEY(KeyOpType) 
+4

*** *** SQL只是*結構化查詢語言* - 許多數據庫系統中使用的語言,但不是數據庫產品...很多東西都是特定於供應商的 - 所以我們真的需要知道您使用的數據庫系統**(以及哪個版本)(請相應地更新標籤)。 – 2013-05-10 12:12:54

+1

它會也有助於瞭解你的問題是什麼(你是否收到錯誤信息)。你說你已經向alter table語句添加了NOT NULL,但是這個子句沒有出現在你顯示的任何一個alter table語句中。 – symcbean 2013-05-10 12:14:47

+0

更新後的文章更具體一點 – 2013-05-10 12:19:48

回答

1

嘗試添加默認的SQL值,但如果要將其作爲主鍵,則每個行的值必須不同,因此必須在創建新列之後並在創建主索引之前更新這些值。

ALTER TABLE EPUpdates.GenInfo_OpType3 
ADD KeyOpType Integer NOT NULL Default 0 
+2

''0''是一個字符,而不是一個整數。 – 2013-05-10 12:25:01

+1

如果它是一個Integer列,爲什麼使默認的**字符串**(「0」)不應該是默認的0? – 2013-05-10 12:25:22

0

如果你想添加一個增量的主鍵,然後試試這個

ALTER TABLE EPUpdates.GenInfo_OpType3 
ADD KeyOpType INT NOT NULL IDENTITY (1,1) PRIMARY KEY