5

Excel ドキュメントを SQL 2005 のテーブルに変換しようとしています。以下のリンクを見つけて、解決策のように見えるかどうか疑問に思っています。もしそうなら、@excel_full_file_name の構文は何になり、パスはどこからの相対パスになりますか?

http://www.siccolo.com/Articles/SQLScripts/how-to-create-sql-to-convert-Excel_to_table.html

4

4 に答える 4

6

純粋な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ルートはこれらの方法よりも利点があります。

于 2008-12-05T09:51:45.100 に答える
2

コードをざっと見てみると、Excel ドキュメントのフル パス名であることが予想されます。

例: c:\path\to\my\excel\document.xls

ただし、手順をインストールしたり実行したりしていないため、間違っている可能性がありますが、一見したところそのように見えます。

于 2008-12-03T21:31:24.237 に答える
1

SSIS/DTS パッケージを使用して変換することをお勧めします。はるかに簡単です。

SSIS Excel の例

** この例ではウィザードを使用していることに注意してください。SSIS/DTS パッケージを SQL ボックスで実行するジョブとしてスケジュールできます。

于 2008-12-04T03:49:56.420 に答える
0

この例では、SQLからExcelにデータをコピーします。ただし、OleDbプロバイダーを交換して、反対方向に機能させるだけです。

于 2009-03-09T04:25:17.593 に答える