Ho un SQL Server 2008 che esegue un database che voglio lanciare in TFS. Pertanto ho utilizzato un progetto di database di Visual Studio 2013 in cui ho importato il DB. Dopo aver corretto un mucchio di errori sono bloccato con solo un errore rimasto:
In una vista gli sviluppatori utilizzati OPENQUERY
per accedere a un server collegato. Quindi ho importato un DACPAC che contiene il database giusto e l'ho aggiunto al progetto Add Database Reference
usando le seguenti opzioni di riferimento.
Versione script iniziale
Ecco una versione più breve della creazione della vista originale:
CREATE VIEW dbo.vwStatus
AS
SELECT StatusID, StatusName
FROM OPENQUERY(LinkedServer, 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Ciò ha portato al seguente errore:
Errore 136 SQL71501: Visualizza: [dbo]. [VwStatus] ha un riferimento non risolto all'oggetto [LinkedServer].
Primo tentativo
Quindi ho provato a inserire la variabile del nome del server
FROM OPENQUERY($(LinkedServer), 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Che conduce a
Errore 176 SQL46010: sintassi errata vicino a $ (LinkedServer).
Ulteriori tentativi
Ho armeggiato un po 'intorno e ho provato quanto segue (con e senza aver abilitato gli identificatori tra virgolette):
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
Ricevo sempre un errore.
Non ho idea di cosa sto trascurando qui. Fai? Grazie per il tuo tempo!
(Purtroppo non posso aggiungere il tag visual-studio-2013, quindi ho usato visual-studio)