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
