Database
 sql >> Datenbank >  >> RDS >> Database

Verknüpfte Salesforce.com-Server und sp_columns_ex

SQL Server stellt die gespeicherte Prozedur sp_columns_ex bereit um Spalteninformationen in den Tabellen bereitzustellen, die über den Linked-Server-Mechanismus verfügbar gemacht werden. Theoretisch können Sie sp_columns_ex verwenden mit einem verknüpften Server, der ODBC verwendet, um auf einen Datenspeicher eines Drittanbieters zuzugreifen (z. B. Salesforce.com über den Salesforce.com-ODBC-Treiber von Easysoft). In der Praxis können Sie nicht:sp_columns_ex gibt ein leeres Resultset zurück, wenn es mit einem ODBC-Verbindungsserver verwendet wird, und obwohl Tabellen, die vom Verbindungsserver verfügbar gemacht werden, in SQL Server Management Studio sichtbar sind, Spalten nicht.

Laut Microsoft:

"sp_columns_ex gibt eine leere Ergebnismenge zurück, wenn der OLE DB-Provider des angegebenen Verbindungsservers das COLUMNS-Rowset der IDBSchemaRowset-Schnittstelle nicht unterstützt"

Obwohl es keine endgültige Aussage darüber gibt, ob der Microsoft OLE DB-Anbieter für ODBC-Treiber diese spezielle Schnittstelle unterstützt, deuten umfangreiche Tests sowohl mit Easysoft ODBC-Treibern als auch mit Treibern anderer Anbieter darauf hin, dass dies nicht der Fall ist.

Das Problem liegt daher eher bei der OLE DB-Schnittstelle von Microsoft als bei einem bestimmten ODBC-Treiber oder Back-End eines verknüpften Servers.

Sie können jedoch basierend auf den Spalten in einer Salesforce-Tabelle eine leere SQL Server-Tabelle erstellen. Sie können diese leere Tabelle verwenden, um zu sehen, wie Salesforce-Spaltenmetadaten in SQL Server-Spaltenmetadaten übersetzt werden. Dieses Beispiel gilt für die Account-Tabelle und geht davon aus, dass der Verbindungsserver SALESFORCE heißt :

select * into dbo.NewTable from openquery(SALESFORCE,'select * from Account')
where 1 = 0