Есть ли способ обойти это в SQL Server 2005?
(Меня это раздражает, и каждый раз, когда я сталкиваюсь с этим, я впадаю в ступор. Но это первый раз, когда мне пришлось иметь дело с переполнением стека И я был в Stack Overflow. Пожалуйста, сохраните то немногое здравомыслие, которое у меня есть!)
Таблица измерений:
id INT IDENTITY(1,1)
FactTable:
source_id INT NOT NULL,
target_id INT NOT NULL
Я создал внешний ключ от «Fact.source_id» до «Dimension.id» и настроил его с каскадным удалением и каскадным обновлением.
Когда я попытался сделать то же самое с «Fact.target_id», я получил сообщение об ошибке «о нет, нет, нет», поскольку существует несколько путей для каскада.
Здесь нет других внешних ключей, только два, которые я хочу создать. Я могу создать второй внешний ключ без каскада, но мне это кажется довольно неприятным. Это набор таблиц, которые будут поддерживаться вручную (очень редко они будут затронуты, поэтому клиент не будет платить за графический интерфейс для этого). Такое каскадное удаление/обновление было бы чрезвычайно полезным, но только если это' на обоих полях. (Я сторонник постоянства)
****всхлип****