J'ai un serveur SQL Server 2008 exécutant une base de données que je veux jeter dans TFS. Par conséquent, j'ai utilisé un projet de base de données Visual Studio 2013 dans lequel j'ai importé la base de données. Après avoir corrigé un tas d'erreurs, je suis coincé avec une seule erreur:
Dans une vue, les développeurs utilisés OPENQUERY
pour accéder à un serveur lié. J'ai donc importé un DACPAC qui contient la bonne base de données et je l'ai ajouté au projet en Add Database Reference
utilisant les options de référence suivantes.
Version initiale du script
Voici une version plus courte de la création de la vue d'origine:
CREATE VIEW dbo.vwStatus
AS
SELECT StatusID, StatusName
FROM OPENQUERY(LinkedServer, 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Cela a conduit à l'erreur suivante:
Erreur 136 SQL71501: Affichage: [dbo]. [VwStatus] a une référence non résolue à l'objet [LinkedServer].
Premier essai
J'ai donc essayé d'insérer la variable de nom de serveur
FROM OPENQUERY($(LinkedServer), 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Qui conduit à
Erreur 176 SQL46010: syntaxe incorrecte près de $ (LinkedServer).
D'autres tentatives
J'ai joué un peu autour et j'ai essayé ce qui suit (avec et sans activer les identifiants cités):
FROM OPENQUERY("$(LinkedServer)", 'SELECT * FROM [DB].[dbo].tbStatus') AS
FROM OPENQUERY([$(LinkedServer)], 'SELECT * FROM [DB].[dbo].tbStatus') AS
FROM OPENQUERY([LinkedServer], 'SELECT * FROM [DB].[dbo].tbStatus') AS
FROM OPENQUERY("LinkedServer", 'SELECT * FROM [DB].[dbo].tbStatus') AS
Je reçois toujours une erreur.
Je n'ai aucune idée de ce que je néglige ici. Le faites vous? Merci pour votre temps!
(Malheureusement, je ne peux pas ajouter la balise visual-studio-2013, j'ai donc utilisé visual-studio)