ber*_*hof 3 sql-server default-constraint sql-drop
运行以下查询会导致客户端数据库中的所有约束.然而,在结果集几行似乎并不具有父,即parent_object_id = 0和OBJECT_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'
Run Code Online (Sandbox Code Playgroud)
这是否意味着数据库中存在孤立约束?如果是这样,我该如何删除它们?
根据他们的名字,我可以看到他们是在结构发生大量变化之前的残羹剩饭.
使用sp_helptext我可以看到它们是使用CREATE DEFAULT语句创建的,例如:
CREATE DEFAULT dbo.MyDefault AS 2
Run Code Online (Sandbox Code Playgroud)
这意味着它们只是未绑定的默认值,可以使用sp_binddefault根据MSDN进行绑定,并使用简单的DROP DEFAULT语句删除:
DROP DEFAULT dbo.MyDefault
Run Code Online (Sandbox Code Playgroud)
根据前面提到的MSDN文章,我不知道这种语法,显然将在未来的SQL Server版本中删除.
| 归档时间: |
|
| 查看次数: |
2246 次 |
| 最近记录: |