Basé sur les 2 bases de données ci-dessous:aide t-sql serveur lié
Database_A on Server_1
Database_B on Server_2
je created a linked server to Database_B on Server_1 instance by name 'LS_B'.
J'ai un énorme fichier de script qui crée essentiellement des tables nécessaires, des fonctions, des vues et procédures stockées sur Database_A.
Ces fonctions, vues et procédures stockées se réfèrent à leur tour aux tables Database_B.
Le problème est que je dois maintenant aller et inclure OPENQUERY(LS_B,<query refering to database_b table>)
partout dans le fichier de script.
Par exemple
create procedure some_proc
as
begin
select * from openquery(LS_B, 'select * from [Database_B].[dbo].[Table_1]');
end
est-il une meilleure façon de le faire?
Pls. suggérer.
Merci
mise à jour
pourquoi cette échouent
select top (50) * from LS_B.[Database_B].[dbo].[Table_1]
tandis que les travaux ci-dessous
select * from OpenQuery(LS_B, 'select top (50) * from Database_B.dbo.Table_1')
Le message d'erreur sur l'exécution de la première requête est
Impossible de traiter l'objet "" Database_B "." Dbo "." Table_1 "". Le fournisseur OLE DB "SQLNCLI10" pour le serveur lié "LS_B" indique que l'objet n'a pas de colonnes ou l'utilisateur actuel n'a pas d'autorisations sur cet objet
Les deux serveurs sont sur le même domaine.
'OPENQUERY' est seulement utile si vous êtes se connecter à une base de données autre que SQL Server (ou à des versions antérieures ne prenant pas en charge une syntaxe particulière) en raison de la transmission directe de la requête. Le pass-through vous permet d'écrire pour l'autre base de données en SQL natif - IE: TO_DATE sur Oracle, etc. –
@OMG Ponies: Merci d'avoir expliqué cela. J'ai édité ma question pour présenter le nouveau problème auquel je suis confronté. Pouvez-vous pls. fournir une suggestion quant à ce qui peut être fait à ce sujet? Merci. – stackoverflowuser
Testé sur SQL Server 2005 - fonctionne pour moi, avec et sans crochets. Êtes-vous sûr de tester une instance dans laquelle cette instance de serveur lié est présente? Dans Management Studio, dans l'Explorateur d'objets - qu'est-ce qui est répertorié sous Objets serveur \ Serveurs liés (en supposant que vous ayez des autorisations à voir)? –