Lütfen stackoverflow ile ilgili şu soruya bakın :
Bir SQL Server 2008 R2 Express örneğini Interbase'e bağlamak için bir EasySoft ODBC sürücüsü kullanıyorum ve uzak sunucudan meta veri alma konusunda bazı zorluklar yaşıyorum. Net üzerinden bakıldığında ana öneriler tüm dört bölüm bağlantılı sunucu sözdizimi yerine OPENQUERY kullanarak söz.
EG Şu anki (sorunlu) yaklaşımım ...
CREATE VIEW [LIVE].[vwPRDETS] AS SELECT * FROM [LBLIVE]...[PRDETS] WITH (NOLOCK)Ancak bazı tablolarda görünümü çağırırken hata alıyorum ...
Msg 7353, Seviye 16, Durum 1, Satır 1 Bağlı sunucu "LBLIVE" için OLE DB sağlayıcısı "MSDASQL" tutarsız meta veriler sağladı. Yürütme sırasında derleme zamanında bulunmayan fazladan bir sütun sağlandı.
Ayrıca, aşağıdakileri bile elde edemediğim bazı görünümler bile oluşturamıyorum ...
Msg 7315, Düzey 16, Durum 1, Satır 1 Bağlantılı sunucu "LBLIVE" için OLE DB sağlayıcısı "MSDASQL", "" SYSDBA "adıyla eşleşen birden çok tablo içeriyor." AUDIT_LBABKP "".
Belirtilen tablolardan sadece biri olmasına rağmen.
İnternette arama yapmanın alternatif yaklaşımı daha çok ...
SELECT * FROM OPENQUERY(<linked sevrer>, 'SELECT <column list> FROM MyTable')Benim sorum, benim açıklamamda OPENQUERY kullanırsanız SQL Server Interbase gönderilen sonuç optimize edecek? Yoksa iki yaklaşım arasında gerçekten fazla bir fark yok mu?
Bu konu üzerinde bir haç ve bir dba POV isterdim.