2009-12-08 181 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'; 

哪些工作正常。