перенос данных из Excel в SQL Server

У меня есть электронная таблица Excel, содержащая все мои данные, которые мне нужно поместить в базу данных SQL Server. Я новичок в ASP.NET, и мне никогда раньше не приходилось экспортировать данные из Excel в SQL Server.

Мои электронные таблицы Excel выглядят так

Заголовок сделки -> ArtID -> BusinessName -> AdStyleCode -> Адрес -> Пригород

В SQL Server я создал таблицу с именем «Списки» в этом формате.

intListingID -> intCategoryID -> BusinessName - ArtID -> intAdCode -> Адрес -> Пригород

Как лучше всего экспортировать данные из Excel, а затем импортировать их в SQLServer 2005.

Спасибо...


person Jason    schedule 06.04.2009    source источник


Ответы (2)


Вы можете легко сделать это с помощью SSIS, вы можете обратиться к этим двум ссылкам для получения полной информации.

  1. Ссылка 1
  2. Ссылка 2

[РЕДАКТИРОВАТЬ]

Если у вас есть Express, вы можете попробовать приведенные ниже команды, чтобы настроить связанный сервер и получить данные.

EXEC sp_addlinkedserver ExcelData,'Jet 4.0','Microsoft.Jet.OLEDB.4.0','C:\MyData.xls', NULL, 'Excel 5.0;'
GO

Затем вы можете выбрать данные в свои таблицы

INSERT INTO Listings ...
SELECT column1 AS intListingID, <put all columns here> FROM ExcelData...Data
GO

Чтобы узнать о других вариантах, перейдите по этой ссылке.

person Binoj Antony    schedule 06.04.2009
comment
Большое спасибо Биной ​​за ссылку. Надеюсь, это решит мою проблему. - person Jason; 06.04.2009
comment
Тоже после прочтения этих постов. Нужна ли мне полная версия SQL Server для достижения этой цели. У меня есть только SQL Server Express - person Jason; 06.04.2009
comment
Link1 и Link2 теперь перенаправляются на домашние страницы связанных веб-сайтов. Возможно, придется ссылаться на страницы в archive.org. - person Nick T; 02.10.2013
comment
Link1 и Link2 все еще битые ссылки. - person BrOSs; 19.03.2014

Я попытался экспортировать данные из Excel на SQL-сервер через VBA следующим образом:

Const myDB As String = "tenant"
Const myServer As String = "MPAADM"
Const myDB As String = "new"
Const myServer As String = "arjun"

Sub ExportTableToSQL()

    Dim cn As ADODB.Connection
    Dim cnSQL As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Dim sqlTable As String
    Dim acell As Range
    Dim t1 As Date
    Dim t2 As Date
    Dim column As String

    On Error Resume Next
    path = Sheets("Sheet2").Range("B1").Value

    Kill path & \z_temp\aa.xls"
    Kill path & "\z_temp\aa.xls"

    On Error GoTo 0

    On Error GoTo 10
    column = Cells(1, 1).Value

        sqlTable = InputBox("Insert SQL table name")
    Application.Wait (Now + TimeValue("0:00:2"))
    t1 = Now
    Debug.Print t1
    If sqlTable = "" Then Exit Sub
    Application.ScreenUpdating = False
    Set acell = ActiveCell
    If IsEmpty(ActiveCell) Then
        MsgBox "Select a cell inside a table you want to export to SQL"
        Exit Sub
    End If
    ActiveCell.CurrentRegion.Select
    Selection.Copy
    Call NewWorkbook
    Cells(1, 1).Select
    ActiveSheet.Paste

    Set cn = New ADODB.Connection
    Set cnSQL = New ADODB.Connection
    With cnSQL
        .ConnectionString = "provider=sqloledb;Data Source=" & myServer & ";Initial Catalog=" & myDB & ";Trusted_Connection=Yes"
        '      .ConnectionString = "provider=sqloledb;Data Source=" & myServer & ";Initial Catalog=" & myDB & ";Uid=jayantuser;Pwd=Input@123"
        .Open
    End With


    ActiveWorkbook.SaveAs path & "\z_temp\aa.xls"

    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & path & "\z_temp\aa.xls;" & _
    "Extended Properties=Excel 12.0"


    strSQL = "drop table " & sqlTable
    Debug.Print strSQL
    On Error Resume Next
    cnSQL.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Err.Clear
    On Error GoTo 10

    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
        "Server=" & myServer & ";Database=" & myDB & _
        ";trusted_connection=yes]." & sqlTable & _
        " FROM [sheet1$]"

Debug.Print strSQL    
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords    
    cn.Close
    Set cn = Nothing
    ActiveWorkbook.Close False
    On Error Resume Next
    Kill path & "\z_temp\aa.xlx"
    On Error GoTo 0
    t2 = Now
    Debug.Print t2
    MsgBox sqlTable & " table was successfully imported into SQL Server" & vbNewLine & "Transfered record number: " & lngRecsAff _
    & vbNewLine & "Time:" & Int((t2 - t1) * 86400) & "s"
    If MsgBox("Convert data type to bigint?", vbYesNo) = vbYes Then
        strSQL = "ALTER TABLE " & sqlTable & " ALTER COLUMN " & column & " bigint"
        cnSQL.Execute strSQL, lngRecsAff, adExecuteNoRecords
    End If 
    Application.ScreenUpdating = True
    acell.Select
    Exit Sub
10: MsgBox Err.Description
End Sub                                                                       `Sub NewWorkbook()
    Application.DefaultSaveFormat = xlOpenXMLWorkbook
    Workbooks.Add
End Sub`                                                                     
   `Sub Quit()
    Application.Quit
End Sub`                                                                                             
person arjun marwaha    schedule 24.03.2018