Tôi có SQL Server 2008 đang chạy cơ sở dữ liệu mà tôi muốn ném vào TFS. Do đó, tôi đã sử dụng một dự án cơ sở dữ liệu Visual Studio 2013 nơi tôi đã nhập DB. Sau khi sửa một loạt lỗi, tôi bị kẹt chỉ còn một lỗi:
Trong một chế độ xem, các nhà phát triển được sử dụng OPENQUERY
để truy cập vào một máy chủ được liên kết. Vì vậy, tôi đã nhập một DACPAC chứa cơ sở dữ liệu phù hợp và thêm nó vào dự án bằng cách Add Database Reference
sử dụng các tùy chọn tham chiếu sau.
Phiên bản Script ban đầu
Đây là phiên bản ngắn hơn của việc tạo chế độ xem ban đầu:
CREATE VIEW dbo.vwStatus
AS
SELECT StatusID, StatusName
FROM OPENQUERY(LinkedServer, 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Điều này dẫn đến lỗi sau:
Lỗi 136 SQL71501: Xem: [dbo]. [VwStatus] có một tham chiếu chưa được giải quyết đến đối tượng [LinkedServer].
Lần thử đầu tiên
Vì vậy, tôi đã cố gắng chèn biến tên máy chủ
FROM OPENQUERY($(LinkedServer), 'SELECT * FROM [DB].[dbo].tbStatus') AS derivedtbl_1
Điều đó dẫn đến
Lỗi 176 SQL46010: Cú pháp không chính xác gần $ (LinkedServer).
Nỗ lực hơn nữa
Tôi loay hoay một chút và thử các cách sau (có và không có trích dẫn định danh được bật):
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
Tôi luôn luôn nhận được một lỗi.
Tôi không biết tôi đang nhìn gì ở đây. Phải không Cảm ơn vì đã dành thời gian cho tôi!
(Đáng buồn là tôi không thể thêm thẻ visual-studio-2013, vì vậy tôi đã sử dụng visual-studio)