3729: Cannot DROP because it is being referenced by object(无法 DROP,因为它正被对象引用)
SQL Server含义
要删除的对象(表、类型、函数等)被另一个对象引用,该依赖关系阻止了删除。尤其是架构绑定的对象会以这种方式受到保护。
原因
试图删除以 WITH SCHEMABINDING 创建的视图或函数所依赖的表/对象;删除被外键引用的表;或在表/参数仍在使用时删除用户定义类型。
解决方法
先删除引用对象或解除依赖关系。查找依赖关系:SELECT referencing_schema_name, referencing_entity_name FROM sys.dm_sql_referencing_entities('app_schema.object', 'OBJECT'); 对于架构绑定的视图,先用 ALTER VIEW 去掉 SCHEMABINDING 或删除视图,然后再删除表。
同一数据库的其他条目
- 50000用 RAISERROR 引发的自定义错误
- 3902The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION(COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION)
- 1101Could not allocate a new page because of insufficient disk space in filegroup(文件组磁盘空间不足,无法分配新页)
- 3961Snapshot isolation transaction failed because the object was modified by a DDL statement(快照隔离事务失败,因为对象已被 DDL 语句修改)
- 1785Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths(引入 FOREIGN KEY 约束可能导致循环或多重级联路径)
- 9421XML parsing: illegal xml character(XML 解析:非法 XML 字符)
- 15151Cannot find the object/principal because it does not exist or you do not have permission(找不到对象/主体,因为它不存在或您没有权限)