Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come eliminare il vincolo di chiave esterna nel database di SQL Server - Tutorial SQL Server / TSQL Parte 75

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