O SQL Server fornece o procedimento armazenado
sp_columns_ex
para fornecer informações de coluna nas tabelas disponibilizadas através do mecanismo de servidor vinculado. Em teoria, você pode usar sp_columns_ex
com um servidor vinculado que usa ODBC para acessar um armazenamento de dados de terceiros (por exemplo, Salesforce.com por meio do driver ODBC Salesforce.com da Easysoft). Na prática, você não pode:sp_columns_ex
retorna um conjunto de resultados vazio quando usado com um servidor vinculado ODBC e, embora as tabelas disponibilizadas pelo servidor vinculado sejam visíveis no SQL Server Management Studio, as colunas não são. De acordo com a Microsoft:
"sp_columns_ex retorna um conjunto de resultados vazio se o provedor OLE DB do servidor vinculado especificado não oferecer suporte ao conjunto de linhas COLUMNS da interface IDBSchemaRowset"
Embora não haja uma declaração definitiva sobre se o Microsoft OLE DB Provider for ODBC Drivers oferece suporte a essa interface específica, testes extensivos com drivers ODBC da Easysoft e drivers de outros fornecedores sugerem que não.
O problema, portanto, está na interface OLE DB da Microsoft, e não em um driver ODBC específico ou back-end de servidor vinculado.
No entanto, você pode criar uma tabela vazia do SQL Server com base nas colunas de uma tabela do Salesforce. Você pode usar esta tabela vazia para ver como os metadados de coluna do Salesforce são convertidos em metadados de coluna do SQL Server. Este exemplo é para a tabela Conta e assume que o servidor vinculado é chamado
SALESFORCE
:select * into dbo.NewTable from openquery(SALESFORCE,'select * from Account') where 1 = 0