Hướng dẫn SQL chỉ ra cách thêm ràng buộc duy nhất của SQL Server trên nhiều cột trên bảng cơ sở dữ liệu. Các ràng buộc duy nhất ngăn dữ liệu hàng trùng lặp trên các cột chính

Bạn đang xem: ms sql ràng buộc nhiều cột duy nhất

Thêm Ràng buộc Duy nhất của Máy chủ SQL trên Nhiều Cột

Hướng dẫn SQL này chỉ ra cách thêm ràng buộc duy nhất của SQL Server trên nhiều cột trong bảng cơ sở dữ liệu.
Ràng buộc duy nhất của SQL trên nhiều cột đảm bảo rằng trong bảng SQL Server sẽ không có hàng thứ hai chia sẻ cùng dữ liệu trên các cột đã xác định với một hàng trong bảng khác.

Ví dụ: nếu bạn có một hệ thống quản lý và theo dõi việc đặt phòng họp, bạn sẽ muốn ngăn việc đặt trước tài nguyên trong cùng một khoảng thời gian cho những người yêu cầu khác nhau.
Là một giải pháp mô tả cơ sở dữ liệu, trường hợp này là một ràng buộc duy nhất sẽ giữ cho dữ liệu bảng cơ sở dữ liệu của bạn nhất quán.
Tôi giả sử rằng trong mô hình cơ sở dữ liệu của ứng dụng, bạn có một bảng thời gian đặt chỗ.
Trong trường hợp đó, một Ràng buộc duy nhất của SQL nhiều cột được xác định trong danh sách cột sẽ đưa ra ngoại lệ trong khi thêm bản ghi thứ hai có cùng bản ghi trên các cột đã xác định.


Thay đổi Bảng Thêm Ràng buộc DUY NHẤT (column1, …, columnn)

Mã số

Hãy làm một vài ví dụ về cách thêm ràng buộc duy nhất trong bảng cơ sở dữ liệu SQL Server trên nhiều cột và kiểm tra xem ràng buộc duy nhất có bị vi phạm hay không khi chúng ta chèn cùng một dữ liệu cột vào hai hàng khác nhau.

Ví dụ về ràng buộc duy nhất


Tạo Đặt trước Bàn (
Id int ID (1,1),
Tài nguyên varchar (10),
TimeSlot varchar (20),
Người yêu cầu varchar (50)
)

Mã số

Giả sử rằng nhà phát triển SQL hoặc quản trị viên cơ sở dữ liệu SQL Server không tạo ràng buộc duy nhất trên bảng cơ sở dữ liệu trên trên các cột Resource và TimeSlot, có thể dành cùng một phòng họp cho các nhóm khác nhau trong cùng một khoảng thời gian.
Đây là hai câu lệnh Chèn cơ sở dữ liệu để kiểm tra trường hợp không thêm ràng buộc uniqu trong SQL.

Xem Thêm  Cách kiểm tra xem bất kỳ giá trị nào là NaN trong Pandas DataFrame - kiểm tra xem một giá trị có phải là nan


CHÈN VÀO ĐẶT CHỖ CHỌN ‘Cuộc họp101′, ’10: 00-11: 00’, ‘Nhóm Phát triển SQL’
CHÈN VÀO ĐẶT CHỖ CHỌN ‘Cuộc họp101′, ’10: 00-11: 00’, ‘Nhóm Quản trị Máy chủ SQL’

Mã số

Đây là một trường hợp vi phạm các yêu cầu thiết kế cơ sở dữ liệu của chúng tôi.
Hãy tiếp tục với trường hợp ví dụ tương tự.
Hãy để tôi thêm ràng buộc duy nhất của SQL Server trên nhiều cột (cột Resource và TimeSlot) bằng cách sử dụng lệnh Transact-SQL bên dưới.


Đặt trước bảng thay thế Thêm ràng buộc sqlUniqueConstraint UNIQUE (Resource, TimeSlot)

Mã số

Mặc dù cú pháp thêm ràng buộc duy nhất là chính xác và danh sách nhiều cột chứa các cột bảng sql chính xác, các nhà phát triển sql sẽ nhận được ngoại lệ sau do SQL Engine ném ra.

Hằng số duy nhất của SQL không thành công do khóa dublicate được tìm thấy trong bảng đích

Lỗi thực thi SQL.
Câu lệnh SQL đã thực thi:
Đặt trước bảng thay thế Thêm ràng buộc sqlUniqueConstraint UNIQUE (Resource, TimeSlot)
Nguồn lỗi: .Net SqlClient Data Provider
Thông báo Lỗi: Câu lệnh CREATE UNIQUE INDEX đã chấm dứt do tìm thấy khóa trùng lặp cho tên đối tượng ‘dbo.Reservation’ và tên chỉ mục ‘sqlUniqueConstraint’. Giá trị khóa trùng lặp là (Cuộc họp 1101, 10: 00-11: 00).
Không thể tạo ràng buộc. Xem các lỗi trước đó.
Các tuyên bố này đã bị chấm dứt.

Trong thực tế, thông báo lỗi trên là đủ tự giải thích. Chỉ vì dữ liệu bảng hiện có chứa các giá trị khóa không phải duy nhất, không thể tạo ràng buộc duy nhất cho các cột khóa đó.
Vì vậy, trước khi tiếp tục thêm ràng buộc duy nhất vào bảng SQL Server, bằng cách nào đó bạn nên loại bỏ hoặc thay đổi các giá trị cột chính trùng lặp.
Thật tuyệt là ngoại lệ trong ví dụ này (tôi chạy lệnh SQL trong Visual Studio 2012), các giá trị cột chính vi phạm ràng buộc duy nhất cũng được trả lại cho người dùng chạy lệnh.

Xem Thêm  Hướng Dẫn Kết Nối Csdl Sql Với C# Kết Nối Cơ Sở Dữ Liệu Sql, Lập Trình Cơ Sở Dữ Liệu Với C# - ket noi c# voi sql

Hãy xem các hàng ngăn cản việc tạo ràng buộc duy nhất và vi phạm ràng buộc duy nhất của chúng tôi


Chọn * Từ Đặt trước Trong đó Tài nguyên = ‘Cuộc họp101′ Và Thời gian Thời gian = ’10: 00-11: 00’

Mã số

Tôi sẽ cập nhật phòng họp cho nhóm Quản trị viên máy chủ SQL thành Meeting102. Điều này sẽ ngăn lỗi vi phạm đối chiếu duy nhất trong khi chúng tôi thêm ràng buộc duy nhất trên bảng cho nhiều cột.


Cập nhật tài nguyên nhóm đặt chỗ = ‘Meeting102’
Where Requestor = ‘SQL Server Management Team’

Mã số

Sau khi cập nhật dữ liệu bảng để cung cấp một tình huống ban đầu duy nhất trước khi chúng tôi thêm ràng buộc duy nhất trên nhiều cột của bảng, chúng tôi đã sẵn sàng thực thi tập lệnh Tên_biến_bảng Thêm_tên_kết_chính_tính_tên duy nhất (key_column_list) một lần nữa.


Đặt trước bảng thay thế Thêm ràng buộc sqlUniqueConstraint UNIQUE (Resource, TimeSlot)

Mã số

Lần này, công cụ cơ sở dữ liệu SQL Server sẽ thêm thành công ràng buộc duy nhất mới bao gồm danh sách nhiều cột được cung cấp trên bảng mục tiêu.

Sau khi tạo ràng buộc uniqu, các nhà phát triển không thể chèn bất kỳ bản ghi nào vào bảng có chứa khóa trùng lặp với dữ liệu bảng hiện có.
Hãy tạo một trường hợp mẫu vi phạm ràng buộc duy nhất trên bảng SQL Server và xem điều gì sẽ xảy ra.
Thực hiện các lệnh Chèn sau đây, xin lưu ý rằng chúng tôi có các khóa trùng lặp ở đây cho các cột tài nguyên và thời gian.


CHÈN VÀO ĐẶT CHỖ CHỌN ‘Cuộc họp102′, ’11: 00-12: 00’, ‘Nhóm Phát triển SQL’
CHÈN VÀO ĐẶT CHỖ CHỌN ‘Cuộc họp102′, ’11: 00-12: 00’, ‘Lập trình viên .NET’

Mã số

Mặc dù hàng đầu tiên được chèn thành công vào bảng cơ sở dữ liệu, lệnh thứ hai sẽ không thành công vì nó có các giá trị trùng lặp với hàng đầu tiên.

Thông báo Lỗi: Vi phạm ràng buộc UNIQUE KEY ‘sqlUniqueConstraint’. Không thể chèn khóa trùng lặp vào đối tượng ‘dbo.Reservation’.
Các tuyên bố này đã bị chấm dứt.

Ví dụ trên cho thấy rằng ràng buộc duy nhất giúp quản trị viên SQL Server và nhà phát triển SQL duy trì tính hợp lệ của dữ liệu trên các ứng dụng cơ sở dữ liệu của họ.

Xem Thêm  Yêu cầu Python BÀI ĐĂNG: Hướng dẫn hoàn chỉnh - python yêu cầu phương thức đăng


Xem thêm những thông tin liên quan đến chủ đề ms sql ràng buộc nhiều cột duy nhất

SQL-09: Ràng buộc trong SQL

  • Tác giả: thân triệu
  • Ngày đăng: 2018-01-11
  • Đánh giá: 4 ⭐ ( 9124 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này chúng ta sẽ tìm hiểu về ràng buộc trong sql. nó là gì, dùng như thế nào, gồm những thành phần nào? Hãy cùng nhau tìm hiểu nhé!

Constraints – Ràng buộc toàn vẹn dữ liệu trong SQL – Deft Blog

  • Tác giả: shareprogramming.net
  • Đánh giá: 5 ⭐ ( 7121 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ràng buộc (Constraint) là các quy tắc được áp dụng trên các cột dữ liệu của một bảng. Chúng được sử dụng để kiểm tra tính hợp lệ của dữ

TRẦN VĂN BÌNH MASTER: SQL PRIMARY KEY Constraint

  • Tác giả: www.tranvanbinh.vn
  • Đánh giá: 3 ⭐ ( 2648 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Ràng Buộc Check Trong SQL

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 5 ⭐ ( 4070 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ràng buộc `CHECK` được sử dụng nhằm giới hạn phạm vi giá trị mà một cột có thể chứa.

Ràng buộc DUY NHẤT trong SQL Server là gì?

  • Tác giả: www.greelane.com
  • Đánh giá: 5 ⭐ ( 1022 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ràng buộc UNIQUE cho phép quản trị viên SQL Server chỉ định một cột không được chứa các giá trị trùng lặp, tương tự như các ràng buộc Khóa chính.

Ràng buộc (Constraint) trong SQL

  • Tác giả: viblo.asia
  • Đánh giá: 3 ⭐ ( 5627 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này mình sẽ chia sẽ một số kiến thức về cách định nghĩa ràng buộc trong MS SQL Server. Constraint là gì? Constraint là những quy tắc được áp dụng trên các cột dữ liệu, trên bảng. Được sử dụng…

Cách tạo, thêm và xóa các ràng buộc duy nhất trong SQL Server

  • Tác giả: bizflycloud.vn
  • Đánh giá: 4 ⭐ ( 4747 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hãy cùng Bizfly Cloud tìm hiểu các thủ thuật tạo và thêm và xóa các ràng buộc trong SQL Server.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php