Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak dodać ograniczenie klucza obcego do istniejącej tabeli w SQL Server — samouczek SQL Server / TSQL część 68

Scenariusz:

Utworzyłeś już dwie tabele dbo.Customer i dbo.Orders. Klucz podstawowy jest tworzony na kolumnie CustomerId w tabeli dbo.Customer.
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
    )

Musisz zmienić tabelę dbo.Orders i dodać ograniczenie klucza obcego dla CustomerId z dbo.Customer.

Rozwiązanie:

Ponieważ tabele są już obecne, poniższy skrypt może być użyty do zmiany tabeli dbo.Orders i dodania ograniczenia klucza obcego.
Jeśli kolumna już istnieje w drugiej tabeli, na której chcesz utworzyć ograniczenie klucza obcego, jesteś dobrze uruchomić poniższy skrypt. Ponieważ nie mamy kolumny w tabeli, najpierw dodamy kolumnę CustomerId w tabeli dbo.Orders. W naszym przypadku kolumna Nazwa nie musi być zgodna z pierwszą kolumną tabeli 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)
 
Utwórz ograniczenie klucza obcego w kolumnach złożonych Poniższy skrypt może służyć do tworzenia ograniczenia klucza obcego dla kolumn złożonych.
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
    )
 Kolumny już istnieją w obu tabelach, więc nie musimy dodawać kolumn do drugiej tabeli. Musimy tylko utworzyć ograniczenie klucza obcego. Poniższy skrypt może być użyty do utworzenia ograniczenia klucza obcego dla kolumn złożonych.
     Alter table dbo.Orders
     Add Constraint Fk_Order_Customer_FName_SSN 
     FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
 
Napiszesz składnię tabeli
Zmień tabelę dbo.NazwaTwojejTabeliAdd Constraint Ograniczenie_NazwaKlucz obcy (kolumna1FromTableName,Column2FromTable) Referencje dbo.YourFirstTable(Column1FromPrimaryKey)
Kolumna2FromPrimaryKey Demo :Jak dodać ograniczenie klucza obcego do istniejącej tabeli w SQL Server



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bulk DELETE w SQL Server 2008 (Czy istnieje coś takiego jak Bulk Copy (bcp) do usuwania danych?)

  2. Jak zamienić ciąg w kolumnie tabeli SQL Server?

  3. Jeśli nie określono opcji „Kolejność według”, jaką kolejność wybiera zapytanie dla zestawu rekordów?

  4. Jak działa OBJECTPROPERTY() w SQL Server

  5. Różnica między sys.parameters, sys.system_parameters i sys.all_parameters w programie SQL Server