220

次の方法で (SQL Server に) 外部キーを作成しました。

alter table company add CountryID varchar(3);
alter table company add constraint Company_CountryID_FK foreign key(CountryID) 
references Country;

次に、次のクエリを実行します。

alter table company drop column CountryID;

そして、私はこのエラーを受け取ります:

メッセージ 5074、レベル 16、状態 4、行 2
オブジェクト 'Company_CountryID_FK' は列 'CountryID' に依存しています。
メッセージ 4922、レベル 16、州 9、行 2
ALTER TABLE DROP COLUMN CountryID は、1 つ以上のオブジェクトがこの列にアクセスしているため失敗しました

私はこれを試しましたが、うまくいかないようです:

alter table company drop foreign key Company_CountryID_FK; 
alter table company drop column CountryID;

CountryID列を削除するにはどうすればよいですか?

ありがとう。

4

8 に答える 8

337

試す

alter table company drop constraint Company_CountryID_FK


alter table company drop column CountryID
于 2008-09-18T14:54:18.310 に答える
50

これはうまくいきます:

ALTER TABLE [dbo].[company] DROP CONSTRAINT [Company_CountryID_FK]
于 2008-09-18T14:57:29.363 に答える
26

I think this will helpful to you...

DECLARE @ConstraintName nvarchar(200)
SELECT 
    @ConstraintName = KCU.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC 
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU
    ON KCU.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG  
    AND KCU.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
    AND KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
WHERE
    KCU.TABLE_NAME = 'TABLE_NAME' AND
    KCU.COLUMN_NAME = 'TABLE_COLUMN_NAME'
IF @ConstraintName IS NOT NULL EXEC('alter table TABLE_NAME drop  CONSTRAINT ' + @ConstraintName)

It will delete foreign Key Constraint based on specific table and column.

于 2013-12-31T12:45:01.363 に答える
21

最初に制約の存在を確認してから削除します。

if exists (select 1 from sys.objects where name = 'Company_CountryID_FK' and type='F')
begin
alter table company drop constraint  Company_CountryID_FK
end
于 2014-06-13T22:23:54.833 に答える
11
alter table company drop constraint Company_CountryID_FK
于 2008-09-18T14:56:47.417 に答える
4

私はMSSQLを知りませんが、そうではないでしょうか:

alter table company drop **constraint** Company_CountryID_FK;
于 2008-09-18T14:56:00.723 に答える
1

テーブルを右クリックして[変更]を選択し、属性に移動して右クリックし、[主キーの削除]を選択することもできます。

于 2010-06-01T17:37:46.770 に答える
1

FK 制約または列自体を削除しようとしていますか?

制約を削除するには:

alter table company drop constraint Company_CountryID_FK

制約を削除するまで、列を削除することはできません。

于 2013-03-26T13:34:53.373 に答える