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

Sådan tilføjes fremmednøglebegrænsning til eksisterende tabel i SQL Server - SQL Server / TSQL vejledning del 68

Scenarie:

Du har allerede oprettet to tabeller dbo.Customer og dbo.Orders. Primær nøgle oprettes i kolonnen CustomerId i dbo.Customer-tabel.
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
    )

Du skal ændre dbo.Orders-tabellen og tilføje en begrænsning af udenlandsk nøgle for CustomerId fra dbo.Customer.

Løsning:

Da tabellerne allerede er til stede, kan nedenstående script bruges til at ændre dbo. Orders-tabellen og tilføje en begrænsning af fremmednøgle.
Hvis kolonnen allerede findes i den anden tabel, som du gerne vil oprette Foreign Key Constraint på, er du godt at køre nedenstående script. Da vi ikke har kolonnen i tabellen, vil vi tilføje CustomerId-kolonnen i dbo.Orders-tabellen først. Kolonnen Navn behøver ikke at stemme overens med første tabelkolonne i vores tilfælde dbo.Customer.CustomerId
--Add new column to Table in case you don't have    
Alter table dbo.Orders
    Add CustomerId int
     
--Add Foreign Key Constraint on Existing Table
    Alter table dbo.Orders
    Add Constraint Fk_CustomerId  
    Foreign Key(CustomerId) References dbo.Customer(CustomerId)
 
Opret fremmednøglebegrænsning på sammensatte kolonner Nedenstående script kan bruges til at oprette fremmednøglebegrænsning for sammensatte kolonner.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT Identity(1,1)
    ,FName VARCHAR(100) Not Null
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10) Not Null,
    Constraint Pk_FName_SSN Primary Key (FName,SSN)
    )


    CREATE TABLE dbo.Orders (
    OrderId INT Identity(1, 1)
    ,OrderitemName VARCHAR(50)
    ,OrderItemAmt INT
    ,FirstName VARCHAR(100),
     SSN VARCHAR(10) Not Null
    )
 Kolonner findes allerede i begge tabeller, så vi behøver ikke at tilføje kolonner til den anden tabel. Vi behøver kun at skabe Foreign Key Constrain. Nedenstående script kan bruges til at oprette fremmednøglebegrænsning for sammensatte kolonner.
     Alter table dbo.Orders
     Add Constraint Fk_Order_Customer_FName_SSN 
     FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
 
Du vil skrive din syntaks for din tabel
Alter table dbo.YourTableNameAdd Constraint Constraint_NameForeign Key (Column1FromYourTableName,Column2FromYourTable) References dbo.YourFirstTable(Column1FromPrimaryKey,Columnary2From)>
Demo :Sådan tilføjes Foreign Key Constraint til eksisterende tabel i SQL Server



  1. Spring JDBC-understøttelse og stort datasæt

  2. Hvordan kan jeg vælge den første dag i en måned i SQL?

  3. Sådan installeres MySQL 8 på Ubuntu 20.04 LTS

  4. Hvordan kan jeg slette ved hjælp af INNER JOIN med SQL Server?