sql >> データベース >  >> RDS >> Database

Salesforce.comリンクサーバーとsp_columns_ex

    SQL Serverは、ストアドプロシージャsp_columns_exを提供します リンクサーバーメカニズムを介して利用可能になったテーブルの列情報を提供します。理論的には、sp_columns_exを使用できます ODBCを使用してサードパーティのデータストアにアクセスするリンクサーバー(例:EasysoftのSalesforce.com ODBCドライバーを介したSalesforce.com)。実際には、次のことはできません:sp_columns_ex ODBCリンクサーバーで使用すると空の結果セットを返します。リンクサーバーによって使用可能になったテーブルはSQLServerManagement Studioに表示されますが、列は表示されません。

    Microsoftによると:

    「指定されたリンクサーバーのOLEDBプロバイダーがIDBSchemaRowsetインターフェイスのCOLUMNS行セットをサポートしていない場合、sp_columns_exは空の結果セットを返します」

    Microsoft OLE DB Provider for ODBCドライバーがこの特定のインターフェイスをサポートしているかどうかについての明確な声明はありませんが、EasysoftODBCドライバーと他のベンダーのドライバーの両方を使用した広範なテストではサポートされていないことが示されています。

    したがって、問題は、特定のODBCドライバーやリンクサーバーのバックエンドではなく、MicrosoftのOLEDBインターフェイスにあります。

    ただし、Salesforceテーブルの列に基づいて空のSQLServerテーブルを作成することはできます。この空のテーブルを使用して、Salesforceの列メタデータがSQLServerの列メタデータにどのように変換されるかを確認できます。この例はAccountテーブル用であり、リンクサーバーの名前がSALESFORCEであると想定しています。 :

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

    1. データベースサーバーのハードウェアトレンド

    2. Debian10にMariaDBデータベースをインストールする方法

    3. INFORMATION_SCHEMAとsysobjects

    4. MySQLとOracleを使用したHibernate自動キー生成