Перекрестные ссылки на внешние ключи не поддерживаются!
я есть SQLServer со связанным сервером на другую базу данных в другом месте. Я создал вид на этом связанном сервере
create view vw_foo as
select
[id],
[name]
from LINKEDSERVER.RemoteDatabase.dbo.tbl_bar
Я хотел бы, чтобы следующее
alter table [baz]
add foo_id int not null
go
alter table [baz] with check
add constraint [fk1_baz_to_foo]
foreign key([foo_id])
references [dbo].[vw_foo] ([id])
go
Но это приводит к ошибке: «Внешний ключ« fk1_baz_to_foo »ссылается на объект« dbo.vw_foo », который не является таблицей пользователя».
Если я попытаюсь поставить внешний ключ прямо на стол, используя следующую
alter table [baz] with check
add constraint [fk1_baz_to_bar]
foreign key([foo_id])
references LINKEDSERVER.RemoteDatabase.dbo.tbl_bar ([id])
Тогда я получаю следующую ошибку:
Имя объекта 'LINKEDSERVER.RemoteDatabase.dbo.tbl_bar' содержит больше, чем максимальное количество префиксов. Максимум 2.
Есть ли способ, которым я могу достичь того же эффекта?