我有一個表,當我從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.
是否有人可以告訴我怎樣可以刪除現有表中的列是一個外鍵。
感謝
'FK__GlobalSet_72E607DB'是約束的名稱,而不是'Contact1' – LONG
是的,我注意到了,但不知道這是怎麼generated..Will這總是是同一個名字。 – user1221989
https://stackoverflow.com/questions/45945900/dropping-and-recreating-constraints-in-sql-server發現這個來解決這個問題,但仍然不知道如何生成該名稱。 – user1221989