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

Jakie jest znaczenie odwołującego się do siebie klucza obcego?

ALTER TABLE [SchemaName].[TableName]  WITH CHECK ADD  
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])

Ten klucz obcy jest całkowicie zbędny i nie ma sensu, wystarczy go usunąć. Nigdy nie może zostać naruszone, ponieważ wiersz pasuje do siebie, sprawdzając poprawność ograniczenia.

W tabeli hierarchicznej relacja byłaby między dwiema różnymi kolumnami (np. Id i ParentId )

Jeśli chodzi o to, dlaczego mógł zostać utworzony, jest całkiem prawdopodobne przy użyciu projektanta wizualnego, jeśli klikniesz prawym przyciskiem myszy węzeł „Klucze” w eksploratorze obiektów i wybierzesz „Nowy klucz obcy”, a następnie zamkniesz okno dialogowe bez usuwania utworzonego klucza obcego, a następnie dokonasz inne zmiany w otwartym projektancie tabel i ich zapisanie stworzą tego rodzaju nadmiarowe ograniczenie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Transpozycja wierszy na kolumny

  2. jak pracować z po wstawieniu wyzwalacza w serwerze sql 2008

  3. Jak napisać wynik instrukcji SQL do pliku CSV?

  4. SQL Server 2008:Zmienić nazwę elementu za pomocą XML DML?

  5. Audyt zmian danych SQL Server