2016-12-31 59 views
1

我需要改变我的表“MyTable的”的“ID”栏,以移除约束,但也添加一个默认值,所以我做的:SQL服务器 - 删除约束,并添加默认值一次

要降约束我做的:

ALTER TABLE MyTable DROP CONSTRAINT [ID] 

为默认值添加到列:

ALTER TABLE MyTable ADD DEFAULT 0 FOR ID 

是否有可能在一个SQL语句做一次?

+1

它似乎并不如此。你可能会放弃2个约束,或者添加2个约束,但似乎不可能放弃1并添加1(就我的知识和测试而言)。如果你了解如何,发布到下面的答案。 – DVT

+3

ADD和DROP是[语法](https://msdn.microsoft.com/en-gb/library/ms190273.aspx)中的互斥选项。您不能同时执行这两个操作。 –

+1

它们需要对表进行独占锁定,并且由于它们是单独的事务语句,因此SQL Server无法一起执行它们。毕竟,你如何在已经存在的地方插入一个约束?因此,必须在上一个命令完成后才能进行联合。 –

回答

2

您可以参考the grammar in books online来回答这个问题。 ()表示替代方案。您可以选择ADDDROP。你不能在一个ALTER TABLE调用中执行这两个操作。