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

Ràng buộc duy nhất trong SQL Server là gì - Hướng dẫn sử dụng SQL Server / TSQL Phần 95

Ràng buộc duy nhất trong SQL Server là gì:

Ràng buộc duy nhất trong SQL Server được tạo trên một cột hoặc các cột để hạn chế cột / s chỉ chấp nhận các giá trị duy nhất.
Chỉ cho phép một giá trị Null duy nhất trong cột mà trên đó Ràng buộc duy nhất được tạo.

Tình huống:

Giả sử bạn đang làm việc với tư cách là nhà phát triển SQL Server cho công ty bảo hiểm, bạn được yêu cầu tạo bảng dbo.Customer phải có cột SSN và nó phải luôn chấp nhận các giá trị Duy nhất.


Giải pháp:

Đối với trường hợp trên, chúng ta có thể sử dụng Ràng buộc duy nhất trên Cột SSN. Tập lệnh bên dưới có thể được sử dụng để tạo ràng buộc duy nhất trên một cột.
USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [SSN] VARCHAR(11),
    Unique(SSN)
) 

--Insert sample records in table 
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
,('Aamir','Shahzad','000-00-0001')
,('Aamir','Shahzad','000-00-0002')
 
 
Kiểm tra dữ liệu trong bảng dbo.Customer bằng cách sử dụng truy vấn Chọn
Cách thêm Ràng buộc duy nhất trên một cột trong SQL Server

Hãy sử dụng các dạng xem hệ thống để kiểm tra xem Ràng buộc duy nhất có được thêm vào hay không và SQL Server đã đặt tên gì cho nó.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
Cách thêm Ràng buộc Duy nhất trong SQL Server
 Như chúng ta có thể thấy rằng Máy chủ SQL đã đặt tên "UQ__Customer__CA1E8E3C7E8AFCB1" cho Ràng buộc duy nhất. Nếu chúng tôi muốn thực hiện một số quy ước đặt tên thì chúng tôi nên tự cung cấp tên. 
Nếu chúng tôi cố gắng chèn giá trị đã tồn tại trong cột Ràng buộc duy nhất, chúng tôi sẽ gặp lỗi bên dưới.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Msg 2627, Mức 14, Trạng thái 1, Dòng 11 
Vi phạm ràng buộc KEY DUY NHẤT 'UQ__Customer__CA1E8E3C7E8AFCB1'. Không thể chèn khóa trùng lặp vào đối tượng 'dbo.Customer'. Giá trị khóa trùng lặp là ().
Tuyên bố đã bị chấm dứt.

Nếu bạn muốn tạo Ràng buộc duy nhất với một số quy ước đặt tên, chúng ta có thể sử dụng cú pháp dưới đây.

USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [SSN] VARCHAR(11),
    Constraint UQ_Dbo_Customer_SSN Unique(SSN)
) 
 


Video Demo:Ràng buộc duy nhất 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. Cài đặt cụm chuyển đổi dự phòng SQL Server -2

  2. Giới hạn phiên người dùng đồng thời cho một đăng nhập cụ thể trong SQL Server

  3. 10 sự thật về giám sát hiệu suất cơ sở dữ liệu có thể khiến bạn ngạc nhiên

  4. Ví dụ về Chuyển đổi ‘smalldatetime’ thành ‘datetime’ trong SQL Server (T-SQL)

  5. Cách tạo bảng trong SQL Server bằng cách sử dụng truy vấn