2016-12-28 4 views
0

j'ai deux instances SQL Server:serveur lié d'accès du serveur lié directement

  • SQLSERVER64
  • SQLSERVER32

En SQLSERVER32, j'ai un serveur lié à une base de données Paradox appelée ParadoxDBLinkedServer.

Pour accéder à certaines des tables Paradox dans le serveur j'exécute simplement la déclaration suivante:

SELECT * 
FROM [ParadoxDBLinkedServer]...Clients 

Ensuite, je dois accéder à ces objets de l'instance SQLSERVER64. Pour ce faire, j'ai créé un serveur lié appelé [.\SQLSERVER32] dans cette instance pointant vers SQLSERVER32.

Ce que j'essaie de faire maintenant est d'accéder directement aux objets ParadoxDBLinkedServer de l'instance SQLSERVER64. Je veux dire, accéder à un serveur lié à partir d'un autre serveur lié.

La requête je suis essayant de courir est la suivante:

SELECT * 
FROM [.\SQLSERVER32].[ParadoxDBLinkedServer ]...Clients 

Mais je reçois cette erreur:

The number name '.\SQLSERVER32.ParadoxDBLinkedServer ...Clients' contains more than the maximum number of prefixes. The maximum is 3.

Est-il possible d'effectuer un accès comme celui-ci? Qu'est-ce que j'oublie ici?

J'essaie d'éviter de créer une vue pour chaque table du ParadoxDBLinkedServer dans l'instance SQLSERVER32 afin de réduire les frais généraux.

+0

Vous obtenez cette erreur lorsque vous avez des objets en excès dans votre quatre parties convention de nommage: [. \ SQLSERVER32].. '[ParadoxDBLinkedServer] [Nom_Schema ]. [Table_Name] 'essayez ceci .. –

+0

@Darshan_Viswanath_BI, le schéma est manquant. En fait, il est dans le schéma par défaut. Mais essayez [. \ SQLSERVER32]. [ParadoxDBLinkedServer]. [Default] .Clients que j'obtiens: Le fournisseur OLE DB "% ls" pour le serveur lié "% ls" ne contient pas la table "% ls". La table n'existe pas ou l'utilisateur actuel n'a pas d'autorisations sur cette table. – Andres

+0

Pouvez-vous vous connecter aux deux serveurs et faire un 'select * from [Base de données]. [Dbo]. [Client]'? Préfixer avec [ParadoxDBLinkedServer] devrait être votre solution. Si la table n'existe pas ou si vous n'avez pas les permissions nécessaires, vous le saurez. –

Répondre

0

select * from openquery (LinkedServerName, 'select * from tablename')