У меня есть 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.
Можно ли как-то добиться такого же эффекта?