2017-08-30 87 views
0

我有一個表,當我從SQL Server Management Studio中創建一個定義,我得到這個刪除SQL Server中的外鍵和列

CREATE TABLE [dbo].[Settings] 
(
    [SettingsID] [int] NOT NULL,  
    [Contact1] [uniqueidentifier] NULL, 

    CONSTRAINT [PK_Settings] 
     PRIMARY KEY CLUSTERED ([SettingsID] ASC) 
) ON [PRIMARY] 
GO 

ALTER TABLE [dbo].[Settings] WITH CHECK 
    ADD FOREIGN KEY([Contact1]) 
    REFERENCES [dbo].[User] ([UserSID]) 
GO 

我試圖刪除Contact1列,刪除外鍵

當我嘗試刪除欄目中直接我得到這個

ALTER TABLE Settings 
    DROP COLUMN Contact1 

錯誤:

The object 'FK__GlobalSet_72E607DB' is dependent on column 'Contact1'.
Msg 4922, Level 16, State 9, Line 24
ALTER TABLE DROP COLUMN Contact1 failed because one or more objects access this column.

當我嘗試刪除外鍵第一

ALTER TABLE Settings 
    DROP CONSTRAINT Contact1 

錯誤:

Msg 3728, Level 16, State 1, Line 24
'Contact1' is not a constraint.
Msg 3727, Level 16, State 0, Line 24
Could not drop constraint. See previous errors.

是否有人可以告訴我怎樣可以刪除現有表中的列是一個外鍵。

感謝

+3

'FK__GlobalSet_72E607DB'是約束的名稱,而不是'Contact1' – LONG

+0

是的,我注意到了,但不知道這是怎麼generated..Will這總是是同一個名字。 – user1221989

+0

https://stackoverflow.com/questions/45945900/dropping-and-recreating-constraints-in-sql-server發現這個來解決這個問題,但仍然不知道如何生成該名稱。 – user1221989

回答

0

刪除約束「FK__GlobalSet_72E607DB」