2013-07-02 35 views
0

部分由我們支持各種客戶運行的腳本的它增加了外鍵,但外鍵,我不希望運行腳本的這一部分時添加的一個,因爲一些客戶在他們的設置中沒有這個。如何從下面的代碼中刪除FK6。我已經嘗試了下面的外鍵FK6上的DROP,但得到語法錯誤。下降外鍵約束,如果不存在

IF OBJECT_ID('FK2') IS NULL 
BEGIN 
ALTER TABLE [table_1] ADD 
    CONSTRAINT [FK2] FOREIGN KEY 
    (
    [reason_gen] 
) REFERENCES [table_1] (
    [field_1] 
) NOT FOR REPLICATION, 
    CONSTRAINT [FK3] FOREIGN KEY 
    (
    [field_2], 
    [field_3] 
) REFERENCES [table_2] (
    [field_4], 
    [field_5] 
) NOT FOR REPLICATION, 
    CONSTRAINT [FK4] FOREIGN KEY 
    (
    [res_code_gen] 
) REFERENCES [table_3] (
    [field_6] 
) NOT FOR REPLICATION, 
    CONSTRAINT [FK5] FOREIGN KEY 
    (
    [field_7], 
    [field_8] 
) REFERENCES [table_4] (
    [field_7], 
    [field_8] 
) NOT FOR REPLICATION, 

ALTER TABLE [table_1] DROP 
CONSTRAINT [FK6] FOREIGN KEY 
    (
    [field_9] 
) REFERENCES [ftable_5] (
    [field_10] 
) NOT FOR REPLICATION 
END 
+2

如果你刪除一個關鍵的,你不需要指定整個關鍵。例如'alter table [table_1] drop constraint [fk6]'would would be all you need ... –

回答

1

的下降外鍵的語法就是:

ALTER TABLE [table_1] DROP CONSTRAINT [FK6] 
0

哪個數據庫是這樣嗎? Oracle,MYSQL,SQL Server?

對於Oracle,語法是:

ALTER TABLE table_name 
drop CONSTRAINT constraint_name; 
+0

這是SQL Server。確定感謝,但現在我有 ALTER TABLE [TABLE_1] DROP 約束[FK6] ( [field_9] )參考文獻[ftable_5( [field_10] )NOT FOR REPLICATION 我仍然得到語法錯誤字段9和字段10.當我將鼠標懸停在每個字段上時,都會顯示'字段9]附近的語法錯誤。期待SELECT或'(' – user2543807

+0

任何人都可以幫忙嗎? – user2543807