いくつかのテーブルを削除するDDLスクリプトを作成していますが、最初にそれらのテーブルのすべての依存関係を特定する必要があります。これらの依存関係には、外部キー制約、ストアドプロシージャ、ビューなどが含まれます。できれば、依存テーブルを削除する前に、システムテーブル/ビューを使用してこれらの依存関係をプログラムで削除するスクリプトを作成します。
5 に答える
3
これは、最初から書くのは非常に面倒です。Red-Gate SQL Dependency Trackerのようなサードパーティツールを検討しました か?
于 2008-09-09T23:06:06.830 に答える
1
sp_dependsは信頼できません。参照:sp_dependsに依存していますか(しゃれは意図されていません)
于 2008-09-09T23:02:01.880 に答える
0
いつでもsyscommentsテーブルを検索できます....それでも時間がかかる場合があります...
于 2008-09-09T23:09:04.810 に答える
0
参考にしていただけますsysreferences
か?
select 'if exists (select name from sysobjects where name = '''+c.name+''') '
+' alter table ' + t.name +' drop constraint '+ c.name
from sysreferences sbr, sysobjects c, sysobjects t, sysobjects r
where c.id = constrid
and t.id = tableid
and reftabid = r.id
and r.name = 'my_table'
これにより、多くの条件付きdrop constraint
呼び出しが生成されます。動作するはずです。
于 2009-06-18T03:23:01.300 に答える
-2
これを行うには、sp_depends ストアド プロシージャを使用できます。
USE AdventureWorks
GO
EXEC sp_depends @objname = N'Sales.Customer' ;
http://msdn.microsoft.com/en-us/library/ms189487(SQL.90).aspx
于 2008-09-09T22:58:14.183 に答える