Scenario:
Stai lavorando come sviluppatore di SQL Server e devi preparare lo script per eliminare il vincolo di chiave esterna che è stato creato nella tabella dbo.Orders.Soluzione:
Creiamo le tabelle di esempio dbo.Customer e dbo.Orders e includiamo il vincolo della chiave esterna come parte della tabella di creazione utilizzando lo script seguente.USE YourDatabaseName GO CREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) ) CREATE TABLE dbo.Orders ( OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT ,Customer_id INT FOREIGN KEY REFERENCES Customer(CustomerId) )
Una volta create le tabelle e anche il vincolo di chiave esterna, è possibile utilizzare l'istruzione seguente per trovare il nome del vincolo di chiave esterna con il nome della tabella.
USE YourDatabaseName GO Select Schema_name(Schema_id) as SchemaName, object_name(Parent_object_id) as TableName, name as ForeignKeyConstraintName from sys.foreign_keys
Trova il nome del vincolo della chiave esterna in SQL Server con il nome della tabella |
Ora che conosciamo il nome del vincolo, possiamo andare avanti e scrivere la nostra dichiarazione di vincolo di rilascio.
Sintassi per Drop Foreign Key Constraint su TableAlter Table SchemaName.TableNameDrop Constraint Constraint_Name
Ho usato l'istruzione seguente per eliminare FK__Orders__Customer__164452B1 Vincolo chiave esterna.
Alter table dbo.Orders Drop Constraint FK__Orders__Customer__164452B1
Se sei interessato a generare script per eliminare tutti i vincoli di chiave esterna in un database, controlla questo link.
Video demo:come eliminare i vincoli di chiave esterna in SQL Server