Я наткнулся на это T-SQL коды в базе данных клиента сегодня:столбца первичного ключа с внешним ключом ссылкой на себя
CREATE TABLE dbo.Dates
(
MarketDate date,
PRIMARY KEY (MarketDate),
FOREIGN KEY (MarketDate) REFERENCES dbo.Dates (MarketDate)
)
Неясно мне, что цель может быть подано, позволяя столбец первичного ключа в имеют отношение внешнего ключа к себе. Естественно, я удалил отношения.
Будет ли этот внешний ключ иметь какой-либо эффект? Есть ли когда-нибудь прецедент, который бы оправдывал его использование? Если нет, то почему SQL Server допускает такие отношения.
Эта таблица не похожа на обычное хранилище учетных записей, это скорее постоянный _calendar_ для целей программирования. Сначала я попрошу разработчика. Это может быть трюк, описанный @ S.Karras, чтобы избежать редактирования, но для меня это кажется неприемлемым. –
Если вы узнаете, можете ли вы обновить свой ответ, пожалуйста? Это интересно, и я очень хочу узнать причину разработчиков. Ура! –
@DaveBrown: в дополнение к TRUNCATE, DELETE и UPDATE также разрешены (по крайней мере, на SQL 2012). Согласен - интересный вопрос. – DMason