我試圖在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