寻找正确的 sql 语法以将默认值添加到现有表

Posted

技术标签:

【中文标题】寻找正确的 sql 语法以将默认值添加到现有表【英文标题】:Looking for correct sql syntax to add default values to existing table 【发布时间】:2012-02-02 13:32:11 【问题描述】:

编辑:有没有办法检查约束是否已经存在以确定是否需要先删除它?

我构建了一系列表,并在添加新记录时在两列中将默认值设置为“True”。

似乎将添加约束,代码行如下所述,但它不会在绑定中创建默认值“True”。

问题:

我正在尝试更改 SQL Express 2008 中现有列的默认值

ALTER TABLE [dbo].[tblLangtrTR] ADD  CONSTRAINT [DF_tblLangtrTR_displayRecord_1]  DEFAULT (N'True') FOR [displayRecord]

使用上面的代码我得到这个错误....

消息 2714,第 16 级,状态 5,第 2 行 数据库中已经有一个名为“DF_tblLangtrTR_displayRecord_1”的对象。 消息 1750,第 16 级,状态 0,第 2 行 无法创建约束。查看以前的错误。

【问题讨论】:

【参考方案1】:
IF EXISTS(SELECT *
          FROM   sys.default_constraints
          WHERE  name = 'DF_tblLangtrTR_displayRecord_1'
                 AND parent_object_id = object_id('dbo.tblLangtrTR'))
  ALTER TABLE dbo.tblLangtrTR DROP CONSTRAINT
  [DF_tblLangtrTR_displayRecord_1]

ALTER TABLE dbo.tblLangtrTR ADD CONSTRAINT [DF_tblLangtrTR_displayRecord_1]
DEFAULT (N'True') FOR [displayRecord]  

【讨论】:

以上是关于寻找正确的 sql 语法以将默认值添加到现有表的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 下 修改表的某个字段默认值语法是怎么样的

如何将具有默认值的两列添加到配置单元中的现有表?

sqlserver 下 修改表的某个字段默认值语法是怎么样的

怎么用SQL语句添加新字段并设置默认值

如何添加 NOT NULL 约束以及列的默认值?

如何更新字段以将值添加到现有值?