Tôi hiện đang chạy một bộ phần mềm của bên thứ ba, sử dụng SQL Server làm cơ sở dữ liệu của nó. Tôi có một trường hợp thứ hai của SQL Server chạy ở một vị trí khác, và một số ứng dụng mà tôi đang xây dựng trong trường hợp đó SQL Server cần truy cập một số dữ liệu trong phần mềm của bên thứ ba. Vì vậy, tôi tạo ra một kết nối ODBC giữa các hộp, và thiết lập máy chủ SQL của bên thứ ba như một máy chủ được liên kết trên phiên bản SQL Server của tôi. Là một bài kiểm tra, tôi chạy một cái gì đó giống như tuyên bố sau từ máy chủ SQL của tôi, truy cập vào một trong các bảng bên thứ ba của:Cơ sở dữ liệu SQL Server được liên kết cung cấp lỗi "siêu dữ liệu không nhất quán"
SELECT * FROM LinkedServerName.SchemaName.dbo.TableName
Để mà tôi nhận được lỗi này:
OLE DB error trace [Non-interface error: Column 'TableRowVersion' (compile-time
ordinal 4) of object '"SchemaName"."dbo"."TableName"' was reported to have a
DBCOLUMNFLAGS_ISROWVER of 0 at compile time and 512 at run time].
Msg 7356, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' supplied inconsistent metadata for a column. Metadata
information was changed at execution time.
Lỗi này là tương tự cho bất kỳ bảng nào khác mà tôi cố gắng truy cập. Lỗi này có ý nghĩa gì và có cách nào xung quanh nó không?
Kể từ khi câu hỏi là về một kết nối đến một máy chủ MS SQL và một số người khác không DBMS (mySQL, PostgreSQL, ...) câu trả lời này là một trong những giá trị nhất đối với trường hợp này (có nguồn gốc là cách performant hơn hơn ODBC). Nhưng nó sẽ không hoạt động nếu máy chủ thứ 2 của bạn không phải là máy chủ MS SQL – DestyNova