Philipが言ったように...まずxp_cmdshellの実行を確認してください。パーミッションの問題で実行されていない場合は、最初に実行してこのオプションを再構成してください
SP_CONFIGURE 'XP_CMDSHELL',1GO RECONFIGURE
プレ>この後、次のコマンドを実行して、ACE ドライバーの InProcess 機能に対するリンク サーバーのアクセス許可を有効にします。
USE [master]GOEXEC master . dbo。 sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0'、N'AllowInProcess'、1GOEXEC マスター。 dbo。 sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0'、N'DynamicParameters'、1GO
プレ>次の一連のコマンドを実行してください:
sp_configure '詳細オプションを表示', 1GORECONFIGUREGOsp_configure 'アドホック分散クエリ', 1GORECONFIGURE
プレ>エラーが発生した場合は、各コマンドを個別に実行します。最後に、以下のコマンドを実行して、すべての Excel データを SQL サーバーにインポートします:
SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES', 'SELECT * FROM [sheetName$]') コード> プレ>
xls の場合は、ACE の代わりに Jet Driver を使用する必要があることに注意してください。また、このクエリを実行する前に TargetTableName が存在していてはなりません。コーディングをお楽しみください :)