T-SQL添加绑定到现有默认约束的列

时间:2013-12-17 13:05:49

标签: sql-server tsql constraints default alter-table

我在数据库中创建了一个DEFAULT约束,我希望在几个表之间共享,我想编写一个唯一的alter table语句,用于在该表中添加字段,如下所示:

ALTER TABLE MyTable ADD MyField NOT NULL DEFAULT(DF_EXISTING_DEFAULT)

以下错误发生:

Msg 128, Level 15, State 1, Line 1
The name "DF_EXISTING_DEFAULT" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.

请注意,默认值已在DF_EXISTING_DEFAULT中定义,我不想再写一次。我该怎么做?有什么理由我不应该这样做吗?这是t-sql限制吗?

1 个答案:

答案 0 :(得分:4)

你实际上可以这样做,但这样做的机制已弃用,所以不应该使用。

您可以CREATE DEFAULT反对,然后使用sp_bindefault

没有非弃用的替代品。如果默认的逻辑很复杂,你可以把它放在标量UDF中以避免重复自己。