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

时间:2012-02-02 13:32:11

标签: sql tsql sql-server-express

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

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

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

问题:

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

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

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

Msg 2714,Level 16,State 5,Line 2 数据库中已存在名为“DF_tblLangtrTR_displayRecord_1”的对象。 Msg 1750,Level 16,State 0,Line 2 无法创建约束。查看以前的错误。

1 个答案:

答案 0 :(得分:3)

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]