sql >> Database teknologi >  >> RDS >> Database

Salesforce.com-linkede servere og sp_columns_ex

SQL Server leverer den lagrede procedure sp_columns_ex at give kolonneoplysninger i tabellerne, der er gjort tilgængelige via den linkede servermekanisme. I teorien kan du bruge sp_columns_ex med en forbundet server, der bruger ODBC til at få adgang til et tredjeparts datalager (f.eks. Salesforce.com gennem Easysofts Salesforce.com ODBC-driver). I praksis kan du ikke:sp_columns_ex returnerer et tomt resultatsæt, når det bruges med en ODBC-linket server, og selvom tabeller, der er gjort tilgængelige af den linkede server, er synlige i SQL Server Management Studio, er kolonner det ikke.

Ifølge Microsoft:

"sp_columns_ex returnerer et tomt resultatsæt, hvis OLE DB-udbyderen af ​​den angivne linkede server ikke understøtter COLUMNS rækkesættet af IDBSchemaRowset-grænsefladen"

Selvom der ikke er nogen endelig erklæring om, hvorvidt Microsoft OLE DB-udbyderen til ODBC-drivere understøtter denne særlige grænseflade, tyder omfattende tests på både med Easysoft ODBC-drivere og drivere fra andre leverandører, at det ikke gør det.

Problemet ligger derfor i Microsofts OLE DB-grænseflade snarere end med en bestemt ODBC-driver eller linket server-backend.

Du kan dog oprette en tom SQL Server-tabel baseret på kolonnerne i en Salesforce-tabel. Du kan bruge denne tomme tabel til at se, hvordan Salesforce-kolonnemetadata oversættes til SQL Server-kolonnemetadata. Dette eksempel er for kontotabellen og antager, at den linkede server hedder SALESFORCE :

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

  1. Vælg datatype for feltet i postgres

  2. Opdater ListView baseret på SQLite-understøttet ContentProvider

  3. Kan ColumnStore hjælpe med sideinddelingsarbejdsbelastninger?

  4. Brug af pt-pg-summary Percona Toolkit til PostgreSQL