0

Viewコマンドを使用してドロップできますDROP VIEWDROP TABLEテーブルにビューがある場合に処理するための解決策はありますか?

私はのように試しました

DROP TABLE ORDER_TBL CASCADE;

最新のDBMSに別の方法はありますか?

4

3 に答える 3

3

MSDNのドキュメントによると:

http://msdn.microsoft.com/en-us/library/ms173790.aspx

ドロップされたテーブルを参照するビューまたはストアドプロシージャは、DROPVIEWまたはDROPPROCEDUREを使用して明示的にドロップする必要があります。

つまり、MSSQLは自動的に警告を表示したり、ビューをドロップしたりすることはありません。ビューは単に無効になります。

MSDNは続きます:

テーブルへの依存関係を報告するには、sys.dm_sql_referencing_entitiesを使用します。

例えば:

于 2012-07-16T05:36:05.877 に答える
1

データベースオブジェクト(テーブル、列、トリガーなど)を名前で検索する必要がある場合は、SQL検索と呼ばれる無料のRed-Gateツールを参照してください。このツールは、データベース全体であらゆる種類の文字列を検索します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これは、DBAやデータベース開発者にとって必須のツールです。あらゆる種類の用途に完全に無料で使用できることはすでに述べましたか?

テーブルを削除する前にSQL検索を使用すると、そのテーブルに依存している他のオブジェクトを見つけることができます。いくつかの方法でそれらに対処する必要があります-依存関係を削除するか、テーブルと一緒にそれらのオブジェクトも削除します。

于 2012-07-16T05:43:29.360 に答える
1

オプション1:

前にこのスクリプトを実行するDROP TABLEと、テーブルに参照があるすべてのオブジェクトが一覧表示されます。

SELECT DISTINCT so.name,so.xtype
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE '%YOUR TABLE%'

ビューだけが必要な場合は、上記のクエリをでフィルタリングできますAND s.xtype='V'

オプション2:

ビューの定義にWITHSCHEMABINDINGを追加して、ベースのテーブルを削除できないようにすることができます。

于 2012-07-16T05:58:09.987 に答える