SQL Server biedt de opgeslagen procedure sp_columns_ex
om kolominformatie te verstrekken in de tabellen die beschikbaar worden gesteld via het gekoppelde servermechanisme. In theorie kun je sp_columns_ex
. gebruiken met een gekoppelde server die ODBC gebruikt om toegang te krijgen tot een gegevensopslag van een derde partij (bijv. Salesforce.com via Easysoft's Salesforce.com ODBC-stuurprogramma). In de praktijk kunt u niet:sp_columns_ex
retourneert een lege resultaatset bij gebruik met een gekoppelde ODBC-server en hoewel tabellen die beschikbaar zijn gemaakt door de gekoppelde server zichtbaar zijn in SQL Server Management Studio, zijn kolommen dat niet.
Volgens Microsoft:
"sp_columns_ex retourneert een lege resultaatset als de OLE DB-provider van de opgegeven gekoppelde server de COLUMNS-rijenset van de IDBSchemaRowset-interface niet ondersteunt"
Hoewel er geen definitieve verklaring is of de Microsoft OLE DB-provider voor ODBC-stuurprogramma's deze specifieke interface ondersteunt, suggereren uitgebreide tests met zowel Easysoft ODBC-stuurprogramma's als stuurprogramma's van andere leveranciers dat dit niet het geval is.
Het probleem ligt daarom bij de OLE DB-interface van Microsoft en niet bij een bepaald ODBC-stuurprogramma of gekoppelde server-backend.
U kunt echter wel een lege SQL Server-tabel maken op basis van de kolommen in een Salesforce-tabel. U kunt deze lege tabel gebruiken om te zien hoe metagegevens van Salesforce-kolommen worden vertaald naar metagegevens van SQL Server-kolommen. Dit voorbeeld is voor de accounttabel en gaat ervan uit dat de gekoppelde server SALESFORCE
. heet :
select * into dbo.NewTable from openquery(SALESFORCE,'select * from Account') where 1 = 0