Excel を使用してデータを収集および構成し、それを SQL Server 2012 にインポートして保存しています。
これまで SQL Server インポート & エクスポート ウィザードを使用してきましたが、常に手動で設定するのは面倒です。私は Express を使用しているので、もちろん、データを転送する実際のコマンドを保存したり、表示したりすることはできません。
SQL Server リンク サーバーおよび分散クエリで Excel を使用する方法に従って、リンク サーバーをセットアップしようとしましたが、次のエラーが発生します。
リンク サーバーは作成されましたが、接続テストに失敗しました。リンク サーバーを保持しますか?
Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo)
リンク サーバー "FLTST" の OLE DB プロバイダー "Microsoft.Jet.OLEDB.4.0" のデータ ソース オブジェクトを初期化できません。
リンク サーバー "FLTST" の OLE DB プロバイダー "Microsoft.Jet.OLEDB.4.0" がメッセージ "不明なエラー" を返しました。(Microsoft SQL Server、エラー: 7303)
Webページは2005年のものなので、おそらくExcelのバージョン番号が問題だと思ったので、次のものを試しました:
- ページに示されている Excel 8.0 (Excel 2002)
- ウィザードが使用していると思われる Excel 12.0 (Excel 2007)
- Excel 14.0 (Excel 2010) 実際に持っているもの
それらのすべてが私に同じ結果をもたらしました。
次に、 Import Excel file to SQL Server Expressに示されている分散クエリを試しました(ここでもプロバイダー文字列のさまざまなバリエーションを使用)。
USE ExTest
SELECT * INTO TstTbl FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 14.0;Database=c:\ExTest.xlsm', [Contacts])
go
次のエラーが表示されます。
リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.Jet.OLEDB.4.0" がメッセージ "不明なエラー" を返しました。
メッセージ 7303、レベル 16、状態 1、行 3
リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.Jet.OLEDB.4.0" のデータ ソース オブジェクトを初期化できません。
SQL Server に移動してデータを取り込む代わりに、Excel にとどまってデータをプッシュする必要がありますか?
私は何を間違っていますか?
PS: csv ファイルに変換するように言わないでください。私はより少ないステップを実行しようとしていますが、それ以上ではありません!