在SQL Server中,我在表上有一个新列:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

这会失败,因为我在未指定默认约束的情况下指定未指定零。该表不应具有默认约束。

为了解决这个问题,我可以使用默认约束创建表,然后将其删除。

但是,似乎没有任何方法可以指定默认约束应将其命名为此语句的一部分,因此我摆脱它的唯一方法是拥有一个存储的过程,该过程在SYS.Default_constraints中查看它桌子。

对于可能发生的操作来说,这有点混乱/冗长。有人对此有更好的解决方案吗?

有帮助吗?

解决方案

这应该有效:

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL

其他提示

ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top