64

選択した列を SQL Server 2008 データベース テーブルにインポートしたい Excel スプレッドシートがあります。ウィザードはそのオプションを提供しませんでした。

簡単なコード オプションはありますか?

4

15 に答える 15

51

Sql Server 2005 データベースに接続したら、オブジェクト エクスプローラー ウィンドウから、テーブルをインポートするデータベースを右クリックします。[タスク] -> [データのインポート] を選択します。これは単純なツールであり、受信データを適切なテーブルに「マップ」することができます。スクリプトを保存して、必要なときに再度実行できます。

于 2010-06-09T01:25:23.360 に答える
25

Microsoft はいくつかの方法を提案しています。

  • SQL Server データ変換サービス (DTS)
  • Microsoft SQL Server 2005 統合サービス (SSIS)
  • SQL Server リンク サーバー
  • SQL Server 分散クエリ
  • ActiveX データ オブジェクト (ADO) と Microsoft OLE DB Provider for SQL Server
  • ADO および Microsoft OLE DB Provider for Jet 4.0

ウィザード(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;
于 2008-12-17T21:02:42.977 に答える
12

これは長い道のりのように聞こえるかもしれませんが、Excel を使用して INSERT SQL コードを生成し、それをクエリ アナライザに貼り付けてテーブルを作成する方法を検討することをお勧めします。

Excelファイルがサーバー上にないためにウィザードを使用できない場合にうまく機能します

于 2008-12-22T02:41:34.907 に答える
7

次のような OPENROWSET を使用できます。

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
  'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'

パスがローカル マシンではなく、サーバー上のパスであることを確認してください。

于 2008-12-17T21:03:20.637 に答える
4

もう 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
于 2011-09-03T17:22:49.700 に答える
4
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
于 2011-06-14T10:35:07.693 に答える
3

検証を含むデスクトップ インターフェイスを備えたビジュアル ツールが必要な場合は、この Excel ツールを気に入るはずです。このツールを使用して、マルチ ユーザー データ編集タスクを作成したり、任意のソースから SQL サーバーにデータを貼り付けたりすることもできます。

Excel スプレッドシートを検証して SQL Server データベースにインポートする方法:

http://leansoftware.net/en-us/help/excel-database-tasks/worked-examples/how-to-import-excel-spreadsheet-to-sql-server-data.aspx

于 2014-02-05T22:53:14.037 に答える
3

「ウィズ」とは、「SQL Server インポートおよびエクスポート ウィザード」について話していることを前提としています。(私もかなり新しいので、ほとんどの質問、ましてやほとんどの回答を理解していませんが、これは理解できると思います)。その場合、スプレッドシートまたはそのコピーを取り、インポートしたくない列を削除してから、ウィザードを使用できませんか?

私は常にそれで必要なことを実行できることを発見しており、私は SQL Server 2000 のみを使用しています (他のバージョンがどのように異なるかはわかりません)。

編集:実際、私は今それを見ていますが、既存のテーブルのどの行にマップする列を選択できるようです。[ソース テーブルとビューの選択] 画面で、使用しているデータシートを確認し、[宛先] を選択して [編集...] ボタンをクリックします。そこから、それをマップする Excel 列とテーブル列を選択できます。

于 2008-12-17T21:09:41.323 に答える
2

Microsoft Access も別のオプションです。Excel スプレッドシートをインポートするマシンにローカルに Access データベースを作成し (ウィザードを使用できます)、ODBC 経由で SQL Server データベース テーブルにリンクすることができます。

次に、Excel スプレッドシートのデータを SQL Server テーブルに追加する Access のクエリを設計できます。

于 2010-02-12T19:40:41.933 に答える
1

私はそれがあなたを助けると思います

http://social.msdn.microsoft.com/Forums/en-US/sqlgetstarted/thread/78f8e980-0bb6-4a48-b1b1-5f65bca1d511 にアクセスしてください。

于 2013-05-21T08:55:52.560 に答える
1

私が今まで使った中で最高のツールはhttp://tools.perceptus.ca/text-wiz.php?ops=7です。試してみましたか?

于 2012-06-21T10:27:38.507 に答える
0

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

于 2012-03-08T20:55:45.023 に答える
0

インポート ウィザードはそのオプションを提供します。このオプションを使用して、インポートするデータの独自のクエリを作成するか、データのコピー オプションを使用して [マッピングの編集] ボタンを使用して、インポートしたくない列を無視することができます。

于 2008-12-17T21:01:07.300 に答える
0

Excel + SQLCMD + Perl = exceltomssqlinsert

Excel を MSSQL db のフロントエンドとして使用できます...生成された各 SQL 挿入ファイルの先頭にある切り捨てられたテーブルに注意してください...

于 2011-04-23T19:55:25.143 に答える