我需要更改現有表中列的默認值。 (我實際上在網上發現了幾個例子「確認」這個)我可以做 ALTER TABLE表ALTER COLUMN列SET DEFAULT'something'但我得到語法錯誤,並根據這個http://msdn.microsoft.com/en-us/library/ms190273.aspx DEFAULT是不支持。SQL Server - 更改列默認值
接下來的想法是從數據庫中刪除默認的約束,但是我發現,該表創建的約束並沒有被時間和SQL生成一個隨機的名字與每一個部署,以便我可以不上名字引用它。
我想出了從SYS表的查詢返回的約束的名稱:我要寫由字符串連接的查詢,我不能停止思考如何必有
select o.name from sys.objects o
join sys.columns c on o.object_id = c.default_object_id
join sys.tables t on c.object_id = t.object_id
where t.name='TableName' and c.name='ColumnWithDefValue'
做所有這些的更好方法。有什麼建議麼?
TL; DR版本:有什麼改變在SQL Server R2的列的默認約束的最簡單的方法?
感謝
您複製的鏈接是SQL精簡版的鏈接,我使用的是完整的SQL。我收到的錯誤是SET的語法錯誤(或者如果我省略SET關鍵字,則爲DEFAULT) – 2012-01-06 16:08:33
我也曾經碰到過這個問題(這就是爲什麼我總是命名我的約束)。我做了你正在做的事,取出系統生成的名字,構建動態代碼以刪除它,然後用標準化名稱重新創建它(我使用DF_TableName__ColumnName)。 – 2012-01-06 16:14:49