Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy w DB mogą istnieć ograniczenia o tej samej nazwie?

Nie - ograniczenie jest również obiektem bazy danych, dlatego jego nazwa musi być unikalna.

Spróbuj dodać np. nazwę tabeli do twojego ograniczenia, dzięki czemu będzie unikalna.

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
)

Zasadniczo używamy "FK_"(tabela podrzędna)_(tabela nadrzędna)" do nazywania ograniczeń i jesteśmy całkiem zadowoleni z tej konwencji nazewnictwa.

Informacje z MSDN

To, że nazwy ograniczeń muszą być unikalne dla schematu (tj. dwa różne schematy w tej samej bazie danych mogą zawierać ograniczenie o tej samej nazwie) nie jest wyraźnie udokumentowane. Raczej musisz założyć, że identyfikatory obiektów bazy danych muszą być unikalne w obrębie schematu zawierającego o ile nie określono inaczej . Nazwa ograniczenia to zdefiniowana jako:

Porównaj to z nazwą indeksem :

co wyraźnie zawęża zakres identyfikatora.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RADIANS() Przykłady w SQL Server

  2. Jak sprawdzić zgodność bazy danych SQL Server po przestarzałej funkcji sp_dbcmptlevel?

  3. Zwróć wszystkie wiersze z określonej partycji w SQL Server (T-SQL)

  4. Jak skonfigurować chmurę Spotlight i skutecznie rozwiązywać problemy z SQL Server

  5. jak stworzyć i wywołać funkcję skalarną w serwerze sql 2008