SSIS将数据从Excel导出到SQL Server表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS将数据从Excel导出到SQL Server表相关的知识,希望对你有一定的参考价值。
我在SSIS上运行一个软件包,我在Visual Studio 2015上运行软件包(数据工具),我得到了所有的绿灯,一切似乎都很好,但我没有得到任何结果(目标表),我正在尝试从Excel工作簿导入数据之前删除目标表中的所有记录。即使转换不起作用,它们也会在Visual Studio上运行(但有些),但它们不会影响目标。
答案
很难说没有数据样本和没有屏幕截图会发生什么,但它确实应该有效。我在办公室里,使用Excel,SSIS和SQL Server,整天都在做同样的事情。您可以尝试使用Excel VBA将数据加载到SQL Server中吗?
Sub UpdateTable()
Dim cnn As Object
Dim wbkOpen As Workbook
Dim objfl As Variant
Dim rngName As Range
Workbooks.Open "C:UsersExcelDesktopExcel_to_SQL_Server.xls"
Set wbkOpen = ActiveWorkbook
Sheets("Sheet1").Select
Set rngName = Range(Range("A1"), Range("A1").End(xlToLeft).End(xlDown))
rngName.Name = "TempRange"
strFileName = wbkOpen.FullName
Set cnn = CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFileName & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes"";"
nSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=Excel-PCSQLEXPRESS;Database=[Northwind].[dbo].[TBL]]"
nJOIN = " SELECT * from [TempRange]"
cnn.Execute nSQL & nJOIN
MsgBox "Uploaded Successfully"
wbkOpen.Close
Set wbkOpen = Nothing
End Sub
Sub InsertInto()
'Declare some variables
Dim cnn As adodb.Connection
Dim cmd As adodb.Command
Dim strSQL As String
'Create a new Connection object
Set cnn = New adodb.Connection
'Set the connection string
cnn.ConnectionString = "Excel-PCSQLEXPRESS;Database=Northwind;Trusted_Connection=True;"
'Create a new Command object
Set cmd = New adodb.Command
'Open the connection
cnn.Open
'Associate the command with the connection
cmd.ActiveConnection = cnn
'Tell the Command we are giving it a bit of SQL to run, not a stored procedure
cmd.CommandType = adCmdText
'Create the SQL
strSQL = "UPDATE TBL SET JOIN_DT = 2013-01-13 WHERE EMPID = 2"
'Pass the SQL to the Command object
cmd.CommandText = strSQL
'Open the Connection to the database
cnn.Open
'Execute the bit of SQL to update the database
cmd.Execute
'Close the connection again
cnn.Close
'Remove the objects
Set cmd = Nothing
Set cnn = Nothing
End Sub
另外,请考虑以下选项将数据从Excel移动到SQL Server。
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;
Database=C:DataFilesEmployeeData1.xlsx',
[vEmployee$]);
SELECT *
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:DataFilesEmployeeData1.xlsx;
Extended Properties=Excel 12.0 Xml')...[vEmployee$];
另外,如果你有标题......
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml; HDR=YES;
Database=C:DataFilesEmployeeData1.xlsx',
[vEmployee$]);
同样,没有标题......
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml; HDR=NO;
Database=C:DataFilesEmployeeData1.xlsx',
[vEmployee$]);
等等等
以上是关于SSIS将数据从Excel导出到SQL Server表的主要内容,如果未能解决你的问题,请参考以下文章
将数据从平面文件加载到 Sql Server 表,并使用 SSIS 导出到 excel
使用 SSIS 脚本任务将数据从多个 SQL 表导出到不同的平面文件
SSIS 将数据从 SQL db 复制到同一 excel 目标上的多个选项卡
查询值和目标字段的数量不同 - C# 脚本任务 SSIS - 使用动态列将 SQL Proc 的结果导出到 Excel