我试图在SQL Server 2008中使用SQL语句更改列的默认值。我在许多地方发现如何在创建表/添加时设置默认值一列,但没有如何设置它/修改它,一旦列已经存在。在SQL Server中修改默认值
这是我可以用它来设置它补充说:
ALTER TABLE MyTable ADD MyColumn int NOT NULL DEFAULT 0
而且这样的作品,但如果我尝试再进行修改:那些
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL DEFAULT -1
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL SET DEFAULT -1
都不是语法正确,我没有找到用来做我在任何地方假装的语法。我唯一的选择是添加一个新列,从前一列复制值,然后删除前一列和新列以进行更改,但这对我来说看起来并不正确。
有没有一种方法可以在一个简单的句子中做我想做的事情?
谢谢。
我只会添加如何获得约束名称给你的解释: SELECT NAME FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID('dbo.MyTable'); 只要做到这一点,将帮助您知道删除/再次添加哪个约束。 – 2013-03-21 12:31:07
这清楚地表明了为什么它明确地命名你的约束是如此重要!想象一下你想放弃这个限制....如果你知道它叫做'DF_Temp_X'(而不是系统生成的'DF___ temp__x__5A3B20F9'),那么它有多容易。 – 2013-03-21 12:36:49
@ Ruben.Canton:“sp_help TABLE_NAME”也可以。 – 2013-03-21 12:36:51