Mam SQL Server 2008 z bazą danych, którą chcę wrzucić do TFS. Dlatego użyłem projektu bazy danych Visual Studio 2013, w którym zaimportowałem bazę danych. Po naprawieniu wielu błędów utknąłem z jednym błędem:
W jednym widoku twórcy używali OPENQUERY
do uzyskania dostępu do połączonego serwera. Zaimportowałem więc DACPAC, który zawiera odpowiednią bazę danych i dodałem go do projektu, używając Add Database Reference
następujących opcji referencyjnych.
Początkowa wersja skryptu
Oto krótsza wersja oryginalnego widoku:
CREATE VIEW dbo.vwStatus
AS
SELECT StatusID, StatusName
FROM OPENQUERY(LinkedServer, 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Doprowadziło to do następującego błędu:
Błąd 136 SQL71501: Widok: [dbo]. [VwStatus] ma nierozwiązane odwołanie do obiektu [LinkedServer].
Pierwsze podejscie
Próbowałem więc wstawić zmienną nazwy serwera
FROM OPENQUERY($(LinkedServer), 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Który prowadzi do
Błąd 176 SQL46010: Niepoprawna składnia w pobliżu $ (LinkedServer).
Dalsze próby
Szperałem trochę wokoło i wypróbowałem następujące opcje (z włączonymi cytowanymi identyfikatorami i bez nich):
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
Zawsze pojawia się błąd.
Nie mam pojęcia, co tutaj przeoczam. Czy ty? Dziękuję za Twój czas!
(Niestety nie mogę dodać tagu visual-studio-2013, więc użyłem visual-studio)