Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bisakah ada batasan dengan nama yang sama di DB?

Tidak - batasan juga merupakan objek basis data, sehingga namanya harus unik.

Coba tambahkan mis. nama tabel untuk batasan Anda, dengan cara itu akan menjadi unik.

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
)

Kami pada dasarnya menggunakan "FK_"(tabel anak)_(tabel induk)" untuk memberi nama batasan dan cukup senang dengan konvensi penamaan ini.

Informasi dari MSDN

Bahwa nama kendala harus unik untuk skema (yaitu dua skema yang berbeda dalam database yang sama keduanya dapat berisi kendala dengan nama yang sama) tidak didokumentasikan secara eksplisit. Sebaliknya Anda perlu menganggap pengidentifikasi objek database harus unik dalam skema yang berisi kecuali ditentukan lain . Jadi nama kendala didefinisikan sebagai:

Bandingkan ini dengan nama indeks :

yang secara eksplisit mempersempit cakupan pengidentifikasi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Baca data dari SqlDataReader

  2. Temukan nilai di mana saja dalam database

  3. Bagaimana cara membuat SQL Server menemukan login yang cocok dengan nama yang diberikan?

  4. Cara Mendefinisikan Kunci Utama Peningkatan Otomatis di SQL Server

  5. Bagaimana cara memangkas string di SQL Server sebelum 2017?