0

32 ビット マシン (SQL サーバー 2005) で問題なく動作し、64 ビット用に更新する必要があるサンプル コードを次に示します。これはよくある問題ですが、修正方法を見つけることができませんでした。 !

    DECLARE @sourceFile varchar(255), @testRows int

  SELECT @sourceFile = @xmlInfo.value('(/SelectFile/DataSource)[1]', 'VARCHAR(100)')
  EXEC sp_addlinkedserver 'SomeData', 'Excel', 'Microsoft.Jet.OLEDB.4.0', @sourceFile, '', 'Excel 8.0', ''

   IF @xmlInfo.exist('/SelectFile/DataSource') = 1
   BEGIN
    EXEC(' INSERT INTO TableTest
      SELECT col1_Id, col2, Replace(col3, '' '', '''')
      FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
          ''Excel 8.0;HDR=Yes;Database='+@sourceFile+''', [Sheet1$])')
     SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT
   END

私が試しているもう 1 つのことは、bcp ユーティリティを使用して、テーブルから .fmt ファイルを作成することです。これにより、読み取るファイルの形式を定義できます。

どんな助けでも大歓迎です!

4

1 に答える 1

0

Excel用の32ビットドライバーはまだあると思います。したがって、そのドライバーを使用してリンク サーバーを使用できるかどうかはわかりません。

最善の策は、データのインポート ウィザードを使用してデータをインポートし、パッケージを保存して (ウィザードの最後の手順の 1 つ)、パッケージを再実行してデータを更新することです。クライアント ツールはすべて 32 ビットなので、そこで 32 ビット ドライバーを使用しても問題はありません。

于 2010-08-03T10:51:42.060 に答える