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