У меня есть два экземпляра SQL Server:Доступ связанного сервера с связанного сервера непосредственно
- SQLSERVER64
- SQLSERVER32
В SQLSERVER32
, у меня есть связанный сервер с базой данных Paradox под названием ParadoxDBLinkedServer
.
Чтобы получить доступ к некоторым таблицам Paradox на сервере я просто выполнить следующее заявление:
SELECT *
FROM [ParadoxDBLinkedServer]...Clients
Затем мне нужно, чтобы получить доступ к этим объектам из экземпляра SQLSERVER64
. Для этого я создал связанный сервер под названием [.\SQLSERVER32
] в этом случае, указывая на SQLSERVER32
.
То, что я пытаюсь сделать сейчас, - это получить доступ непосредственно к объектам ParadoxDBLinkedServer
из экземпляра SQLSERVER64
. Я имею в виду доступ к связанному серверу с другого связанного сервера.
I'm запрос пытается выполнить это следующий:
SELECT *
FROM [.\SQLSERVER32].[ParadoxDBLinkedServer ]...Clients
Но я получаю эту ошибку:
The number name '.\SQLSERVER32.ParadoxDBLinkedServer ...Clients' contains more than the maximum number of prefixes. The maximum is 3.
Есть ли способ, чтобы выполнить доступ, как это? Что мне здесь не хватает?
Я пытаюсь избежать создания представления для каждой таблицы ParadoxDBLinkedServer
в экземпляре , чтобы уменьшить накладные расходы.
Вы получаете эту ошибку, когда у вас есть лишние объекты в четыре части именования: [. \ SQLSERVER32.]. '[ParadoxDBLinkedServer] [SCHEMA_NAME ]. [Table_Name] 'попробуйте это. –
@Darshan_Viswanath_BI, схема отсутствует. На самом деле он находится в схеме по умолчанию. Но пытаюсь [. \ SQLSERVER32]. [ParadoxDBLinkedServer]. [Default] .Clients Я получаю: поставщик OLE DB «% ls» для связанного сервера «% ls» не содержит таблицу «% ls». Таблица не существует или текущий пользователь не имеет прав на эту таблицу. – Andres
Можете ли вы войти в оба сервера и сделать «select» из [Database]. [Dbo]. [Client] '? Префикс с [ParadoxDBLinkedServer] должен быть вашим решением. Если таблица не существует или вам не нужны разрешения, вы ее узнаете. –