2009-12-08 182 views
7

我有一個表,其中有一列「CompanyID int not null」,其默認值設置爲10.現在我想編寫一個查詢,將此默認值更改爲1.我怎麼能做它?更改列的默認值

任何幫助將不勝感激。我使用SQL Server 2000中

+1

你是說你希望將默認行設置爲10到一個新值嗎? (在這種情況下,您可能很難區分已默認爲10行和已手動設置爲10的行之間的差異。) – 2009-12-08 09:05:13

+0

表中沒有條目。我想將CompanyID列的默認值更改爲1.因此,每當我在表格中插入數據時,它都應該在CompanyID列中自動插入1.默認值是通過約束設置的。 – user92027 2009-12-08 09:16:01

回答

1
ALTER TABLE tablename ALTER COLUMN CompanyID SET DEFAULT 1; 
+1

我試過這個,它不工作。錯誤是'關鍵字'SET'附近的語法錯誤。' – user92027 2009-12-08 09:16:39

+0

我認爲它不能在SQL Server 2000中以這種方式完成 – Jonathan 2009-12-08 09:54:41

9

首先,找出哪個是用來設置默認領域的「約束」的名稱。您可以通過運行該查詢做到這一點:

EXEC sp_helpconstraint 'MyTable' 

然後,你可以刪除並重新添加約束。

ALTER TABLE dbo.MyTable 
DROP CONSTRAINT def_MyTable_CompanyID 
GO 

ALTER TABLE dbo.MyTable 
ADD CONSTRAINT def_MyTable_CompanyID DEFAULT (1) FOR CompanyID 
GO 
17

我認爲你能做的最好是刪除約束,然後再次創建:

alter table dbo.yourTable 
drop constraint default_value_name_constraint 
go 
alter table dbo.yourTable 
add constraint default_value_name_constraint default YourValue for ColumnName 
go 
+1

謝謝你,我工作正常。非常感謝。 – user92027 2009-12-08 09:28:55

-1
ALTER TABLE tablename ALTER COLUMN CompanyID SET DEFAULT Pending; 

我在MySQL的嘗試這樣做,這是給錯誤等待

附近

然後我試了

ALTER TABLE tablename ALTER COLUMN CompanyID SET DEFAULT 'Pending'; 

哪些工作正常。