3

次のクエリを実行すると、クライアントのデータベースにすべての制約が発生します。ただし、結果セットのいくつかの行には親がないようです。つまり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'

これは、データベースに孤立した制約があることを意味しますか?もしそうなら、どうすればこれらを削除できますか?

それらの名前から、構造に大幅な変更が加えられる前の残り物であることがわかります。

4

1 に答える 1

5

を使用すると、ステートメントsp_helptextを使用して作成されたことがわかります。例:CREATE DEFAULT

CREATE DEFAULT dbo.MyDefault AS 2

これは、それらが単にバインドされていないデフォルトであることを意味します。これは、MSDNsp_binddefaultに従ってバインドされ、簡単なステートメントで削除できます。DROP DEFAULT

DROP DEFAULT dbo.MyDefault

前述のMSDNの記事によると、この構文はSQLServerの将来のバージョンで削除されるようです。

于 2011-05-19T14:04:40.833 に答える