0

テーブルから外部キー制約を削除したいのですが、それがどのテーブルかわかりません。私はこの情報しか持っていません。スクリーンショットを確認してください ここに画像の説明を入力

テーブルを削除したいのですが、いくつかの FK 制約のために削除できません。削除したいテーブルは「ZIP_Codes」です

4

4 に答える 4

3

このクエリは、外部キー名と参照テーブル名を提供します

SELECT CAST(F.NAME AS VARCHAR(255)) AS FOREIGN_KEY_NAME
, CAST(P.NAME AS VARCHAR(255)) AS PARENT_TABLE
FROM SYSOBJECTS F
INNER JOIN SYSREFERENCES R ON F.ID = R.CONSTID
INNER JOIN SYSOBJECTS P ON R.RKEYID = P.ID
INNER JOIN SYSCOLUMNS RC ON R.RKEYID = RC.ID AND R.RKEY1 = RC.COLID
WHERE F.TYPE = 'F'
于 2012-10-11T09:22:30.780 に答える
1

これを試して:

DECLARE @parent_object_id int;
DECLARE @TableName varchar(255);
SET @parent_object_id = 1234103437;

SELECT  @TableName = OBJECT_NAME(object_id)
FROM sys.objects
Where object_id = @parent_object_id;

ALTER TABLE [TableName] DROP CONSTRAINT [ForeignKeyName]
于 2012-10-11T09:41:20.090 に答える
1

SQL Server Management Studio を使用している場合は、

テーブルを右クリックし、クリックして、テーブルにView Dependencies依存するすべてのオブジェクトを確認します。対応するオプション ボタンを選択することで、テーブルが依存するオブジェクトを表示することもできます。

削除する前に、削除するオブジェクトとその重要性を知っておくことをお勧めします。

于 2012-10-11T09:51:23.537 に答える
0

Zip_Codes テーブルを指す外部キーを持つすべてのテーブルを検索するには:

select object_schema_name([parent_object_id]), object_name([parent_object_id]), [name]
from sys.foreign_keys
where referenced_object_id = object_id('ZIP_Codes')
于 2012-10-11T14:55:50.817 に答える