Jak upuścić klucz obcy w SQL Server?
Utworzyłem klucz obcy (w SQL serverze) przez:
alter table company add CountryID varchar(3);
alter table company add constraint Company_CountryID_FK foreign key(CountryID)
references Country;
Następnie uruchamiam to zapytanie:
alter table company drop column CountryID;
I dostaję ten błąd:
[[4]}próbowałem tego, ale nie wydaje się, aby praca:Msg 5074, Poziom 16, Stan 4, Linia 2
Obiekt "Company_CountryID_FK" jest zależny od Kolumny "CountryID".
Msg 4922, Poziom 16, Stan 9, Linia 2
ALTER TABLE Drop COLUMN CountryID nie powiodło się, ponieważ jeden lub więcej obiektów uzyskuje dostęp do tej kolumny
alter table company drop foreign key Company_CountryID_FK;
alter table company drop column CountryID;
Co muszę zrobić, aby porzucić CountryID
kolumnę?
8 answers
Try
alter table company drop constraint Company_CountryID_FK
alter table company drop column CountryID
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-24 03:09:33
To zadziała:
ALTER TABLE [dbo].[company] DROP CONSTRAINT [Company_CountryID_FK]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 14:57:29
Myślę, że to ci pomoże...
DECLARE @ConstraintName nvarchar(200)
SELECT
@ConstraintName = KCU.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU
ON KCU.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG
AND KCU.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA
AND KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
WHERE
KCU.TABLE_NAME = 'TABLE_NAME' AND
KCU.COLUMN_NAME = 'TABLE_COLUMN_NAME'
IF @ConstraintName IS NOT NULL EXEC('alter table TABLE_NAME drop CONSTRAINT ' + @ConstraintName)
Usunie ograniczenie klucza obcego na podstawie określonej tabeli i kolumny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-31 12:45:01
Najpierw sprawdź istnienie ograniczenia, a następnie go upuść.
if exists (select 1 from sys.objects where name = 'Company_CountryID_FK' and type='F')
begin
alter table company drop constraint Company_CountryID_FK
end
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-13 22:23:54
alter table company drop constraint Company_CountryID_FK
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 11:57:31
Nie znam MSSQL ale czy nie byłoby:
alter table company drop **constraint** Company_CountryID_FK;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 11:57:39
Możesz również kliknąć prawym przyciskiem myszy tabelę, wybrać Modyfikuj, następnie przejść do atrybutu, kliknąć go prawym przyciskiem myszy i wybrać drop primary key.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-01 17:37:46
[1]}Czy próbujesz zrzucić ograniczenie FK lub samą kolumnę?
Aby usunąć ograniczenie:
alter table company drop constraint Company_CountryID_FK
Nie będziesz w stanie opuścić kolumny, dopóki nie opuścisz ograniczenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 13:34:53