Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да добавите ограничение на външния ключ към съществуваща таблица в SQL Server - SQL Server / TSQL Урок, част 68

Сценарий:

Вече сте създали две таблици dbo.Customer и dbo.Orders. Първичният ключ се създава в колоната CustomerId в таблицата 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
    )

Трябва да промените таблицата dbo.Orders и да добавите ограничение на външния ключ за CustomerId от dbo.Customer.

Решение:

Тъй като таблиците вече присъстват, скриптът по-долу може да се използва за промяна на таблицата dbo.Orders и добавяне на ограничение на външния ключ.
Ако колоната вече съществува във втората таблица, върху която искате да създадете ограничение на външния ключ, вие сте добре е да стартирате скрипта по-долу. Тъй като нямаме колоната в таблицата, първо ще добавим колона CustomerId в таблицата dbo.Orders. Името на колоната не трябва да съвпада с първата колона на таблицата в нашия случай 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)
 
Създаване на ограничение за външен ключ върху съставни колони Скриптът по-долу може да се използва за създаване на ограничение на външния ключ за съставни колони.
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
    )
 Колоните вече съществуват и в двете таблици, така че не е нужно да добавяме колони към втората таблица. Трябва само да създадем ограничение на външния ключ. Скриптът по-долу може да се използва за създаване на ограничение на външния ключ за композитни колони.
     Alter table dbo.Orders
     Add Constraint Fk_Order_Customer_FName_SSN 
     FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
 
Ще напишете своя синтаксис за вашата таблица
Променете таблицата dbo.YourTableNameAdd Constraint Constraint_NameForeign Key (Column1FromYourTableName,Column2FromYourTable) Референции dbo.YourFirstTable(Column1FromPrimaryKomary)>
PrimaryKe
Демо :Как да добавите ограничение на външния ключ към съществуваща таблица в 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. 6 начина за свързване на низ и число в SQL Server

  2. Примери за форматиране на „datetimeoffset“ в SQL Server с помощта на стандартни форматни низове (T-SQL)

  3. Използвайте NEWSEQUENTIALID(), за да създадете нарастващ GUID в SQL Server

  4. Производителност на SQL сървър TOP IO заявка -1

  5. Персонализирани низове за формат на дата/час, поддържани от FORMAT() в SQL Server