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 を外すかビューを削除してから、テーブルを削除する。
同じデータベースの他の項目
- 50000RAISERROR で発生させたカスタムエラー
- 3902The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION(COMMIT に対応する 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(オブジェクト/プリンシパルが存在しないか権限がないため見つからない)