自明の質問が示すように、私は次のような状況にあることを示しています:-
- ユーザーが SP を実行するとすぐに、マシンから目的の Excel シートを選択するための選択ウィンドウが表示されます。
- この選択の後、Excel シート データ全体をテーブルにインポートする必要があります。
要件は非常に簡単です。しかし、障害は SQL の古いバージョン、つまり 2000 です。
なにか提案を ?
@MAT への対応:- 私がやろうとした多くのことの 1 つは、OPENROWSET を使用することです:-
SELECT *
INTO demoTable
FROM
OPENROWSET('Microsoft.Jet.OLEDB.4.0'
,'Excel 8.0;Database=C:\Work\Reports\CustomerRecords.xls'
,'SELECT * FROM [Sheet1$]'
)
これはエラーをスローしました:-
OLE DB プロバイダー 'Microsoft.Jet.OLEDB.4.0' へのアドホック アクセスが拒否されました。リンク サーバーを介してこのプロバイダーにアクセスする必要があります。
私が理解したように、それはアクセス関連の問題です。これをトラブルシューティングするために、私はこれを行いました:-
regedit.exe を開き、\Software\Microsoft\Microsoft SQL Server\Providers\Microsoft.Jet.OLEDB.4.0 に移動し、値 0 で DisallowAdhocAccess という名前の DWORD を作成します。
しかし、新しいDWORDの作成中にエラーが発生したため、それも機能しませんでした:-
値の作成エラー - 値を作成できません: レジストリへの書き込み中にエラーが発生しました。