列を削除しようとしたときに表示されるエラー メッセージ:
オブジェクト「defEmptyString」は列「fkKeywordRolleKontakt」に依存しています。
メッセージ 5074、レベル 16、状態 1、行 43
ALTER TABLE DROP COLUMN fkKeywordRolleKontakt は、1 つ以上のオブジェクトがこの列にアクセスしているため、失敗しました。
ここで説明されているように、私はすでにデフォルトの制約を見つけようとしました: SQL Server 2005 drop column with constraint
残念ながら成功しませんでした:(返される行は次のとおりです。
fkKeywordRolleKontakt 2 814625945 0 defEmptyString
fkKeywordRolleKontakt
また、とのどちらも削除できませんdefEmptyString
。
この依存関係を取り除く正しい方法は何ですか?
編集:おそらくこれも重要です。列 fkKeywordRolleKontakt は、デフォルトの udKeyword (nvarchar(50)) 型ですdbo.defEmptyString
。
編集2:解決
これで問題を解決できました。申し訳ありませんが、完全なエラー メッセージをコピーしませんでした。
Msg 5074, Level 16, State 1, Line 1
The object 'defEmptyString' is dependent on column 'fkKeywordRolleKontakt'.
Msg 5074, Level 16, State 1, Line 1
The object 'FK_tlkpRolleKontakt_tlkpKeyword' is dependent on column 'fkKeywordRolleKontakt'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN fkKeywordRolleKontakt failed because one or more objects access this column.
列エントリ (dbo.tlkpRolleKontakt > 列 > fkKeywordRolleKontakt) を (MSSQL Server Manager で) 右クリックし、[変更] を選択して列を削除することで、列を削除するスクリプトを生成できます。次に、[テーブル デザイナー] > [変更スクリプトの生成] により、必要なコマンドが生成されました。
ALTER TABLE dbo.tlkpRolleKontakt
DROP CONSTRAINT FK_tlkpRolleKontakt_tlkpKeyword
EXECUTE sp_unbindefault N'dbo.tlkpRolleKontakt.fkKeywordRolleKontakt'
ALTER TABLE dbo.tlkpRolleKontakt
DROP COLUMN fkKeywordRolleKontakt
それでおしまい :)