Ich habe einen SQL Server 2008, auf dem eine Datenbank ausgeführt wird, die ich in TFS einfügen möchte. Daher habe ich ein Visual Studio 2013-Datenbankprojekt verwendet, in das ich die Datenbank importiert habe. Nachdem ich eine Reihe von Fehlern behoben habe, habe ich nur noch einen Fehler:
In einer Ansicht verwenden die Entwickler OPENQUERY
den Zugriff auf einen Verbindungsserver. Also habe ich einen DACPAC importiert, der die richtige Datenbank enthält, und ihn Add Database Reference
mithilfe der folgenden Referenzoptionen zum Projekt hinzugefügt .
Erste Skriptversion
Hier ist eine kürzere Version der ursprünglichen Ansichtserstellung:
CREATE VIEW dbo.vwStatus
AS
SELECT StatusID, StatusName
FROM OPENQUERY(LinkedServer, 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Dies führte zu folgendem Fehler:
Fehler 136 SQL71501: Ansicht: [dbo]. [VwStatus] hat einen ungelösten Verweis auf das Objekt [LinkedServer].
Erster Versuch
Also habe ich versucht, die Servernamenvariable einzufügen
FROM OPENQUERY($(LinkedServer), 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Was dazu führt
Fehler 176 SQL46010: Falsche Syntax in der Nähe von $ (LinkedServer).
Weitere Versuche
Ich habe ein bisschen herumgespielt und Folgendes versucht (mit und ohne aktivierten Anführungszeichen):
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
Ich bekomme immer einen Fehler.
Ich habe keine Ahnung, was ich hier übersehen habe. Machst du? Vielen Dank für Ihre Zeit!
(Leider kann ich das Tag "visual-studio-2013" nicht hinzufügen, daher habe ich "visual-studio" verwendet.)