選択した列を SQL Server 2008 データベース テーブルにインポートしたい Excel スプレッドシートがあります。ウィザードはそのオプションを提供しませんでした。
簡単なコード オプションはありますか?
選択した列を SQL Server 2008 データベース テーブルにインポートしたい Excel スプレッドシートがあります。ウィザードはそのオプションを提供しませんでした。
簡単なコード オプションはありますか?
Sql Server 2005 データベースに接続したら、オブジェクト エクスプローラー ウィンドウから、テーブルをインポートするデータベースを右クリックします。[タスク] -> [データのインポート] を選択します。これは単純なツールであり、受信データを適切なテーブルに「マップ」することができます。スクリプトを保存して、必要なときに再度実行できます。
Microsoft はいくつかの方法を提案しています。
ウィザード(DTS)が機能しない場合(そして私はそうすべきだと思います)、次のようなことを試すことができます http://www.devasp.net/net/articles/display/771.html基本的に次のようなことを提案しています
INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4])
SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\Excel.xls;HDR=YES', 'select * from [Sheet1$]') AS A;
これは長い道のりのように聞こえるかもしれませんが、Excel を使用して INSERT SQL コードを生成し、それをクエリ アナライザに貼り付けてテーブルを作成する方法を検討することをお勧めします。
Excelファイルがサーバー上にないためにウィザードを使用できない場合にうまく機能します
次のような OPENROWSET を使用できます。
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'
パスがローカル マシンではなく、サーバー上のパスであることを確認してください。
もう 1 つのオプションは、Excel で VBA を使用し、マクロを記述してスプレッドシート データを解析し、それを SQL に書き込むことです。
ここに一例があります: http://www.ozgrid.com/forum/showthread.php?t=26621&page=1
Sub InsertARecord()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO MyTable (Price)"
stSQL = stSQL & "VALUES (500)"
cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText
If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
go
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Documents and Settings\abhisharma\Desktop\exl\ImportExcel2SQLServer\ImportExcel2SQLServer\example.xls;IMEX=1',
'SELECT * FROM [Sheet1$]')
select * from temptable
検証を含むデスクトップ インターフェイスを備えたビジュアル ツールが必要な場合は、この Excel ツールを気に入るはずです。このツールを使用して、マルチ ユーザー データ編集タスクを作成したり、任意のソースから SQL サーバーにデータを貼り付けたりすることもできます。
Excel スプレッドシートを検証して SQL Server データベースにインポートする方法:
「ウィズ」とは、「SQL Server インポートおよびエクスポート ウィザード」について話していることを前提としています。(私もかなり新しいので、ほとんどの質問、ましてやほとんどの回答を理解していませんが、これは理解できると思います)。その場合、スプレッドシートまたはそのコピーを取り、インポートしたくない列を削除してから、ウィザードを使用できませんか?
私は常にそれで必要なことを実行できることを発見しており、私は SQL Server 2000 のみを使用しています (他のバージョンがどのように異なるかはわかりません)。
編集:実際、私は今それを見ていますが、既存のテーブルのどの行にマップする列を選択できるようです。[ソース テーブルとビューの選択] 画面で、使用しているデータシートを確認し、[宛先] を選択して [編集...] ボタンをクリックします。そこから、それをマップする Excel 列とテーブル列を選択できます。
Microsoft Access も別のオプションです。Excel スプレッドシートをインポートするマシンにローカルに Access データベースを作成し (ウィザードを使用できます)、ODBC 経由で SQL Server データベース テーブルにリンクすることができます。
次に、Excel スプレッドシートのデータを SQL Server テーブルに追加する Access のクエリを設計できます。
私はそれがあなたを助けると思います
http://social.msdn.microsoft.com/Forums/en-US/sqlgetstarted/thread/78f8e980-0bb6-4a48-b1b1-5f65bca1d511 にアクセスしてください。
私が今まで使った中で最高のツールはhttp://tools.perceptus.ca/text-wiz.php?ops=7です。試してみましたか?
I have used DTS (now known as SQL server Import and Export Wizard). I used the this tutorial which worked great for me even in Sql 2008 and excel 2010 (14.0)
I hope this helps
-D
インポート ウィザードはそのオプションを提供します。このオプションを使用して、インポートするデータの独自のクエリを作成するか、データのコピー オプションを使用して [マッピングの編集] ボタンを使用して、インポートしたくない列を無視することができます。
Excel + SQLCMD + Perl = exceltomssqlinsert
Excel を MSSQL db のフロントエンドとして使用できます...生成された各 SQL 挿入ファイルの先頭にある切り捨てられたテーブルに注意してください...