1
我需要改变我的表“MyTable的”的“ID”栏,以移除约束,但也添加一个默认值,所以我做的:SQL服务器 - 删除约束,并添加默认值一次
要降约束我做的:
ALTER TABLE MyTable DROP CONSTRAINT [ID]
为默认值添加到列:
ALTER TABLE MyTable ADD DEFAULT 0 FOR ID
是否有可能在一个SQL语句做一次?
我需要改变我的表“MyTable的”的“ID”栏,以移除约束,但也添加一个默认值,所以我做的:SQL服务器 - 删除约束,并添加默认值一次
要降约束我做的:
ALTER TABLE MyTable DROP CONSTRAINT [ID]
为默认值添加到列:
ALTER TABLE MyTable ADD DEFAULT 0 FOR ID
是否有可能在一个SQL语句做一次?
您可以参考the grammar in books online来回答这个问题。 ()表示替代方案。您可以选择ADD
或DROP
。你不能在一个ALTER TABLE
调用中执行这两个操作。
它似乎并不如此。你可能会放弃2个约束,或者添加2个约束,但似乎不可能放弃1并添加1(就我的知识和测试而言)。如果你了解如何,发布到下面的答案。 – DVT
ADD和DROP是[语法](https://msdn.microsoft.com/en-gb/library/ms190273.aspx)中的互斥选项。您不能同时执行这两个操作。 –
它们需要对表进行独占锁定,并且由于它们是单独的事务语句,因此SQL Server无法一起执行它们。毕竟,你如何在已经存在的地方插入一个约束?因此,必须在上一个命令完成后才能进行联合。 –