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

Ràng buộc khóa chính trong cơ sở dữ liệu SQL Server là gì - Hướng dẫn sử dụng SQL Server / T-SQL Phần 54

Ràng buộc Khóa Chính là gì:

Ràng buộc khóa chính được tạo để đảm bảo tính duy nhất của các bản ghi / hàng. Ràng buộc khóa chính có thể được tạo trên một hoặc một tập hợp các cột miễn là cột / cột đó không cho phép giá trị Null.
1) Ràng buộc khóa chính tạo Chỉ mục theo nhóm theo mặc định nếu chưa tồn tại Giả sử rằng bạn đang tạo bảng mới và bạn đã thêm cột với Khóa chính, nó sẽ tạo chỉ mục theo nhóm.
Trong ví dụ dưới đây, chúng tôi đang tạo bảng dbo.Customer và chúng tôi đã thêm CustomerId làm Ràng buộc khóa chính. Hãy kiểm tra xem loại chỉ mục nào được tạo.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )
 
 Chúng tôi có thể truy vấn chế độ xem hệ thống sys.indexes để lấy thông tin chỉ mục 
SELECT *
FROM sys.indexes
WHERE object_name(object_id) = 'Customer'
 
 Như bạn có thể thấy rằng chỉ mục Clustered được tạo vì không có chỉ mục cụm nào trên bảng này trước đó. Tên gọi của Clustered Index được tạo ra bởi SQL Server. Luôn luôn là một ý kiến ​​hay khi cung cấp tên riêng cho các chỉ mục theo quy ước đặt tên / Tiêu chuẩn mà công ty của bạn đang sử dụng.  

2) Nếu chỉ mục nhóm đã được tạo trên Cột, Chính Chìa khóa sẽ tạo Chỉ mục duy nhất Nếu chỉ mục được phân cụm đã có trên cột / các cột trong bảng và chúng tôi cố gắng tạo Khóa chính, nó sẽ tạo Chỉ mục không phân cụm duy nhất.
Hãy thả và tạo lại bảng dbo.Customer. Vì chúng tôi không thể tạo Chỉ mục theo cụm trên các cột chấp nhận giá trị Null, nên chúng tôi phải xác định Cột không phải là giá trị rỗng.
USE YourDatabaseName
GO
Drop table dbo.Customer
GO

CREATE TABLE dbo.Customer (
    Customerid INT Not Null
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10) Not Null
    )

--Create Clustered Index on SSN Column
CREATE CLUSTERED INDEX IX_Customer_SSN 
    ON dbo.Customer (SSN); 


--Create Primary Key on CustomerID
Alter Table dbo.Customer
Add Constraint Pk_Customer_CustomerId Primary Key(CustomerId)
 
 
 
 Hãy kiểm tra xem loại chỉ mục nào được tạo bằng cách sử dụng chế độ xem hệ thống sys.indexes. Phải có một Chỉ mục được phân nhóm như chúng tôi đã tạo trên SSN và phải có một Chỉ mục không hợp nhất duy nhất sẽ được tạo bởi Ràng buộc khóa chính. 
Ràng buộc khóa chính trong SQL Server là gì - Hướng dẫn sử dụng SQL Server / TSQL

Video Demo:Ràng buộc khóa chính trong SQL Server là gì và cách tạo khóa chính

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trước tiên, ánh xạ các khóa tổng hợp bằng mã EF

  2. chuyển đổi dấu thời gian Epoch sang máy chủ sql (định dạng con người có thể đọc được)

  3. MVC4:UserIsInRole - Không thể kết nối với cơ sở dữ liệu SQL Server

  4. Chuyển đổi các hàng và cột mà không có tổng hợp

  5. Di chuyển Cơ sở dữ liệu Microsoft Access sang SQL Server