编辑:有没有办法检查约束是否已经存在以确定是否需要先删除它?
我构建了一系列表格,在两列中,我在添加新记录时将默认值设置为“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 无法创建约束。查看以前的错误。
答案 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]