私はContact1
列を削除し、外部キーをドロップしようとしています、私は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
を取得するテーブルを持っています
私が直接列を削除しようとすると、私はこの
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