我得到不一致的結果,從加入鏈接服務器。這應該是相對簡單的事......但花了我數小時才弄清楚了這一點。我正在使用SQL Server 2014和CData ODBC驅動程序加入SalesForce。我沒有做任何事情只是試圖執行標準的CRUD操作,但似乎一次又一次地過濾這些鏈接的服務器表,有時結果不會產生。SQL服務器到Salesforce鏈接服務器噩夢
我目前主要的問題,現在的問題是我有困難連接兩個鏈接表在兩個本地表。如果我從連接中刪除一個鏈接表,則會生成結果。但是,無論何時將兩個鏈接表添加到它生成的連接和空記錄集中。
而且是所有相關的標識符存在,所以它確實是與鏈接服務器的問題。以下是我已經嘗試了三種變化:
SELECT * FROM Offer_Interest oi
INNER JOIN Offer o ON oi.Offer_ID_SQL = o.Offer_ID_SQL
INNER JOIN OPENQUERY([TR-SF-PROD], 'SELECT Id, OFFER_ID_SQL__C FROM Offer__c') osf ON o.Offer_ID_SQL =osf.OFFER_ID_SQL__C
INNER JOIN Interest i ON oi.Interest_ID_SQL = i.Interest_ID_SQL
INNER JOIN OPENQUERY([TR-SF-PROD], 'SELECT INTEREST_ID_SQL__C, Id FROM Interest__c') isf ON i.Interest_ID_SQL =isf.Interest_ID_SQL__c
WHERE o.PrimaryContact_ID_SQL = 2803
我也試過不OPENQUERY:
SELECT * FROM FROM Offer_Interest oi
INNER JOIN Offer o ON oi.Offer_ID_SQL = o.Offer_ID_SQL
INNER JOIN [TR-SF-PROD].[CDataSalesforce].[Salesforce].[Offer__c] osf ON o.Offer_ID_SQL =osf.OFFER_ID_SQL__C
INNER JOIN Interest i ON oi.Interest_ID_SQL = i.Interest_ID_SQL
INNER JOIN [TR-SF-PROD].[CDataSalesforce].[Salesforce].[Interest__c] isf ON i.Interest_ID_SQL =isf.Interest_ID_SQL__c
WHERE o.PrimaryContact_ID_SQL = 2803
,最後我還創建了同義詞到鏈接服務器表。所有這些工作使用相同的過濾器或WHERE CLAUSE,如果我單獨運行它們,儘管如果我沒有OPENQUERY過濾它們,鏈接的服務器表似乎有錯誤。
這是我的鏈接服務器到SQL Server第一次經歷這樣,在這個或經歷什麼人的問題可能將不勝感激!
你是說如果你只加入一個鏈接的服務器表,不管它是哪一個,你會得到結果但添加另一個返回0結果?這是真的,當你刪除where子句? – scsimon
@scsimon是的,如果我刪除一個鏈接表(一個或另一個交替),那麼沒有結果產生。有或沒有過濾器。 –
當連接到鏈接的服務器表時,不會產生任何結果...您是否確定應該根據連接條件得到結果。即您確定沒有歸類問題,和/或數據是否存在於條件中? – scsimon