Excel ドキュメントを SQL 2005 のテーブルに変換しようとしています。以下のリンクを見つけて、解決策のように見えるかどうか疑問に思っています。もしそうなら、@excel_full_file_name の構文は何になり、パスはどこからの相対パスになりますか?
http://www.siccolo.com/Articles/SQLScripts/how-to-create-sql-to-convert-Excel_to_table.html
Excel ドキュメントを SQL 2005 のテーブルに変換しようとしています。以下のリンクを見つけて、解決策のように見えるかどうか疑問に思っています。もしそうなら、@excel_full_file_name の構文は何になり、パスはどこからの相対パスになりますか?
http://www.siccolo.com/Articles/SQLScripts/how-to-create-sql-to-convert-Excel_to_table.html
純粋なSQLソリューションが必要な場合は、BULKINSERTT-SQLコマンドを使用できます。最初にファイルをcsv/textとして保存する必要があります。
BULK
INSERT YourDestinationTable
FROM 'D:\YourFile.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
または、純粋なT-SQLソリューションであるOPENROWESTを試すこともできます。
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;DATABASE=D:\YourExcelFile.xls', 'Select * from YourExcelFile')
それは本当にあなたが望む制御と柔軟性の程度に依存します、SSISルートはこれらの方法よりも利点があります。
コードをざっと見てみると、Excel ドキュメントのフル パス名であることが予想されます。
例: c:\path\to\my\excel\document.xls
ただし、手順をインストールしたり実行したりしていないため、間違っている可能性がありますが、一見したところそのように見えます。
SSIS/DTS パッケージを使用して変換することをお勧めします。はるかに簡単です。
** この例ではウィザードを使用していることに注意してください。SSIS/DTS パッケージを SQL ボックスで実行するジョブとしてスケジュールできます。
この例では、SQLからExcelにデータをコピーします。ただし、OleDbプロバイダーを交換して、反対方向に機能させるだけです。