J'ai ajouté un serveur lié, qui s'affiche dans la liste des serveurs liés, mais lorsque je l'interroge, il génère une erreur avec le nom du serveur db.
EXEC sp_helpserver
EXEC sp_addlinkedserver 'aa-db-dev01'
Select * from openquery('aa-db-dev01','Select * from TestDB.dbo.users')
Msg 102, niveau 15, état 1, ligne 1
Syntaxe incorrecte près de 'aa-db-dev01'.
SELECT * FROM [server].[database].[schema].[table]
Cela fonctionne pour moi. SSMS intellisense peut encore souligner cela comme une erreur de syntaxe, mais cela devrait fonctionner si votre serveur lié est configuré et que votre requête est par ailleurs correcte.
Vous devez supprimer les guillemets autour du nom du serveur lié. Cela devrait être comme ceci:
Sélectionnez * dans openquery (aa-db-dev01, 'Sélectionnez * dans TestDB.dbo.users')
Vous pouvez utiliser:
SELECT * FROM [aa-db-dev01].[TestDB].[dbo].[users];
J'utilise une requête ouverte pour effectuer cette tâche comme suit:
select top 1 *
INTO [DATABASE_TO_INSERT_INTO].[dbo].[TABLE_TO_SELECT_INTO]
from openquery(
[LINKED_SERVER_NAME],
'select * from [DATABASE_ON_LINKED_SERVER].[dbo].[TABLE_TO_SELECT_FROM]'
)
L'exemple ci-dessus utilise une requête ouverte pour sélectionner des données d'une base de données sur un serveur lié dans une base de données de votre choix.
Remarque: Pour l'exhaustivité de la référence, vous pouvez effectuer une sélection simple comme ceci:
select top 1 * from openquery(
[LINKED_SERVER_NAME],
'select * from [DATABASE_ON_LINKED_SERVER].[dbo].[TABLE_TO_SELECT_FROM]'
)
essayez Select * from openquery("aa-db-dev01",'Select * from users')
, la connexion à la base de données doit être définie dans la configuration du serveur lié
La réponse acceptée fonctionne pour moi.
De plus, dans MSSQLMS, vous pouvez parcourir l'arborescence de l'Explorateur d'objets jusqu'à la table que vous souhaitez interroger.
[Serveur] -> Objets serveur -> Serveurs liés -> [Serveur lié] -> Catalogues -> [Base de données] -> [table]
puis clic droit, Script Table as, SELECT To, New Query Window
Et la requête sera générée pour vous avec le bon FROM, que vous pouvez utiliser dans votre JOIN