3

运行以下查询会导致我们客户数据库中的所有约束。但是,结果集中的几行似乎没有父级,parent_object_id = 0OBJECT_NAME(parent_object_id)返回NULL

SELECT name, type_desc, OBJECT_NAME(parent_object_id), parent_object_id
FROM sys.objects
WHERE is_ms_shipped = 0
AND type_desc LIKE '%_CONSTRAINT'

这是否意味着数据库中存在孤立约束?如果是这样,我该如何删除这些?

从它们的名字中,我可以看出它们是在对结构进行大量更改之前的剩余物。

4

1 回答 1

5

使用sp_helptext我可以看到它们是使用CREATE DEFAULT语句创建的,例如:

CREATE DEFAULT dbo.MyDefault AS 2

这意味着它们只是未绑定的默认值,可以使用sp_binddefault根据MSDN进行绑定,并使用简单的DROP DEFAULT语句将其删除:

DROP DEFAULT dbo.MyDefault

根据前面提到的 MSDN 文章,我不知道这种语法,显然将在 SQL Server 的未来版本中删除。

于 2011-05-19T14:04:40.833 回答