2012-02-02 39 views
0

编辑:有没有办法来检查约束是否已经存在,以确定是否需要首先删除?寻找正确的sql语法,以添加默认值到现有的表

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

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

问题:

我尝试使用上面的代码中,我得到这个错误更改默认值的现有列在SQL Express 2008的

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

....

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

回答

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]