sql >> Base de Datos >  >> RDS >> Database

Servidores vinculados de salesforce.com y sp_columns_ex

SQL Server proporciona el procedimiento almacenado sp_columns_ex para proporcionar información de columna en las tablas disponibles a través del mecanismo del servidor vinculado. En teoría, puedes usar sp_columns_ex con un servidor vinculado que utiliza ODBC para acceder a un almacén de datos de terceros (por ejemplo, Salesforce.com a través del controlador ODBC de Salesforce.com de Easysoft). En la práctica, no puede:sp_columns_ex devuelve un conjunto de resultados vacío cuando se usa con un servidor vinculado ODBC y, aunque las tablas disponibles por el servidor vinculado están visibles en SQL Server Management Studio, las columnas no lo están.

Según Microsoft:

"sp_columns_ex devuelve un conjunto de resultados vacío si el proveedor OLE DB del servidor vinculado especificado no admite el conjunto de filas COLUMNS de la interfaz IDBSchemaRowset"

Aunque no hay una declaración definitiva sobre si Microsoft OLE DB Provider for ODBC Drivers es compatible con esta interfaz en particular, las pruebas exhaustivas tanto con controladores ODBC de Easysoft como con controladores de otros proveedores sugieren que no es así.

Por lo tanto, el problema radica en la interfaz OLE DB de Microsoft en lugar de un controlador ODBC en particular o un back-end de servidor vinculado.

Sin embargo, puede crear una tabla de SQL Server vacía basada en las columnas de una tabla de Salesforce. Puede usar esta tabla vacía para ver cómo los metadatos de la columna de Salesforce se traducen en metadatos de la columna de SQL Server. Este ejemplo es para la tabla Cuenta y asume que el servidor vinculado se llama SALESFORCE :

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