Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво е значението на саморефериращия външен ключ?

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

Този външен ключ е напълно излишен и безсмислено просто да го изтриете. То никога не може да бъде нарушено, тъй като ред съвпада със себе си, валидирайки ограничението.

В йерархична таблица връзката ще бъде между две различни колони (напр. Id и ParentId )

Що се отнася до това защо може да е бил създаден доста вероятно чрез използване на визуалния дизайнер, ако щракнете с десния бутон върху възела „Ключове“ в изследователя на обекти и изберете „Нов външен ключ“, след което затворете диалоговия прозорец, без да изтривате създадения външен ключ и след това направите някои други промени в отворения дизайнер на таблици и запазването му ще създаде този вид излишно ограничение.



  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 FILESTREAM

  2. Форматът на датата на SQL Server зависи от потребителя?

  3. Задача на SQL Server Agent Уведомете множество оператори при повреда

  4. Съкратете всички таблици в база данни в SQL Server - SQL Server / TSQL урок, част 55

  5. Как да получа последно въведен идентификатор?