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

Có thể có các ràng buộc có cùng tên trong DB không?

Không - một ràng buộc cũng là một đối tượng cơ sở dữ liệu và do đó tên của nó cần phải là duy nhất.

Hãy thử thêm v.d. tên bảng cho ràng buộc của bạn, theo cách đó nó sẽ là duy nhất.

CREATE TABLE BankAccount
(
    BankAccountID   INT            PRIMARY KEY,
    EmployerCode    VARCHAR(20)    NOT NULL,
    Amount          MONEY          NOT NULL,
    CONSTRAINT FK_BankAccount_Employer 
        FOREIGN KEY (EmployerCode) REFERENCES Employer
)

Về cơ bản, chúng tôi sử dụng "FK _" (bảng con) _ (bảng mẹ) "để đặt tên cho các ràng buộc và khá hài lòng với quy ước đặt tên này.

Thông tin từ MSDN

Tên ràng buộc đó phải là duy nhất cho lược đồ (tức là hai lược đồ khác nhau trong cùng một cơ sở dữ liệu có thể chứa một ràng buộc có cùng tên) không được lập thành văn bản rõ ràng. Thay vào đó, bạn cần phải giả định rằng số nhận dạng của các đối tượng cơ sở dữ liệu phải là duy nhất trong lược đồ chứa trừ khi được chỉ định khác . Vì vậy, tên ràng buộc được định nghĩa như:

So sánh tên này với tên của chỉ mục :

thu hẹp phạm vi của số nhận dạng một cách rõ ràng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlDataSourceEnumerator.Instance.GetDataSources () không định vị phiên bản SQL server 2008 cục bộ

  2. Xóa thư cơ sở dữ liệu khỏi cơ sở dữ liệu msdb trong SQL Server (T-SQL)

  3. Câu lệnh INSERT xung đột với ràng buộc FOREIGN KEY - SQL Server

  4. Chênh lệch hàng trong SQL Server

  5. Không thể đăng nhập vào SQL Server bằng Windows Authentication