Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách thêm Ràng buộc khóa ngoại vào bảng hiện có trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 68

Tình huống:

Bạn đã tạo hai bảng dbo.Customer và dbo.Orders. Khóa chính được tạo trên cột CustomerId trong bảng 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
    )

Bạn cần thay đổi bảng dbo.Orders và thêm ràng buộc khóa ngoại cho CustomerId từ dbo.Customer.

Giải pháp:

Vì các bảng đã có sẵn, tập lệnh dưới đây có thể được sử dụng để thay đổi bảng dbo.Orders và thêm ràng buộc Khoá ngoại.
Nếu cột đã tồn tại trong bảng thứ hai mà bạn muốn tạo Ràng buộc khoá ngoại, bạn sẽ tốt để chạy tập lệnh dưới đây. Vì chúng tôi không có cột trong bảng, trước tiên chúng tôi sẽ thêm cột CustomerId trong bảng dbo.Orders. Cột Tên không nhất thiết phải khớp với cột đầu tiên trong bảng trong trường hợp của chúng tôi là 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)
 
Tạo Ràng buộc Khoá Ngoại trên các Cột Tổng hợp Tập lệnh dưới đây có thể được sử dụng để tạo Ràng buộc khóa ngoại cho các cột tổng hợp.
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
    )
 Các cột đã tồn tại trong cả hai bảng nên chúng tôi không phải thêm cột vào bảng thứ hai. Chúng ta chỉ cần tạo Hệ thống khóa ngoại. Tập lệnh dưới đây có thể được sử dụng để tạo Ràng buộc khóa ngoại cho các cột tổng hợp. 
     Alter table dbo.Orders
     Add Constraint Fk_Order_Customer_FName_SSN 
     FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
 
Bạn sẽ viết cú pháp cho bảng của mình
Thay thế bảng dbo.YourTableNameAdd Constraint Constraint_NameForeign Key (Column1FromYourTableName, Column2FromYourTable) Tham chiếu dbo.YourFirstTable (Column1FromPrimaryKey, Column2FromPrimaryKey)
Demo:Cách thêm Ràng buộc khóa ngoại vào Bảng hiện có trong 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. pyodbc - tốc độ chèn hàng loạt rất chậm

  2. Cách chuyển đổi cột dấu thời gian của SQL Server sang định dạng ngày giờ

  3. 4 cách để lấy danh sách lịch biểu trong SQL Server Agent (T-SQL)

  4. Cài đặt Mẫu cơ sở dữ liệu AdventureWorks trong Microsoft SQL Server 2012

  5. Sự khác biệt giữa các hàm được định giá trong bảng của nhiều câu lệnh &các hàm được định giá trong bảng trong dòng trong SQL Server