Sql server 将多个工作表中的数据导入SQL Server表

Sql server 将多个工作表中的数据导入SQL Server表,sql-server,excel,csv,Sql Server,Excel,Csv,是否有方法使用脚本将多个工作表导入同一数据库表?此时,我正在将.xlsx文件保存到2个.csv文件中,并使用批量插入加载数据。如今,数据正在增长(目前约为200万),并且在将文件保存到.csv时面临困难 我不喜欢导入向导,因为我想运行一个简单的存储过程来完成这个过程 在这里提供示例数据 表1 1 James Smith 19750101 2 Meggie Smith 19790122 3 Robert Smith 20071101 4 Alex Smit

是否有方法使用脚本将多个工作表导入同一数据库表?此时,我正在将
.xlsx
文件保存到2个
.csv
文件中,并使用
批量插入
加载数据。如今,数据正在增长(目前约为200万),并且在将文件保存到
.csv
时面临困难

我不喜欢导入向导,因为我想运行一个简单的存储过程来完成这个过程

在这里提供示例数据

表1

1   James   Smith   19750101
2   Meggie  Smith   19790122
3   Robert  Smith   20071101
4   Alex    Smith   20040202
5   John     Roberts    20050612
表2

6   James   Smith   19750101
7   Meggie  Smith   19790122
8   Robert  Smith   20071101
9   Alex    Smith   20040202
10  John     Roberts    20050612

CREATE TABLE CSVTest
(
    ID INT,
    FirstName VARCHAR(40),
    LastName VARCHAR(40),
    BirthDate SMALLDATETIME
);
下面的脚本目前只适用于一张工作表

BULK INSERT CSVTest
FROM 'C:\csvtest.csv'
WITH
    (FIELDTERMINATOR = ',',
     ROWTERMINATOR = '\n');
请注意,我可能无法安装任何其他工具,我想在SQL Server中安装


感谢您的时间。

您可以使用和相关功能来完成此操作。工作表和文件名必须相同,除非您希望通过存储过程动态执行某些操作(这不是很难,但这不是您的问题)。CSV文件不是excel文件。所以你关于“为一张纸工作”的评论是非常误导人的。这个问题已经讨论过很多次了-例如,感谢Jacob和SMor抽出时间。@JacobH和@SMor,在您的评论之后,我做了以下事情。。我不知道如何格式化评论中的内容
EXEC sp_addlinkedserver@server='ExcelServer1',@srvpproduct='ACE 12.0',@provider='Microsoft.ACE.OLEDB.12.0',@datasrc='C:\Users\venkat\Desktop\freelopers\Upwork\u tasks\Chris Hickey\Allproducts\u sheet1.xlsx',@provstr='Excel 12.0;IMEX=1;HDR=是;'''选择*FROM ExcelServer1…[Sheet1$]”选择*FROM OPENQUERY(ExcelServer1,'SELECT*FROM[Sheet1$]”)
`我现在收到此错误消息7399,级别16,状态1,第24行链接服务器“ExcelServer1”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”报告了错误。提供程序没有提供有关错误的任何信息。Msg 7303,级别16,状态1,第24行无法初始化链接服务器“ExcelServer1”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象我从SSMS检查了提供程序,它是我在上面使用的提供程序,您可以使用它和相关函数来执行此操作。工作表和文件名必须相同,除非您希望通过存储过程动态执行某些操作(这不是很难,但这不是您的问题)。CSV文件不是excel文件。所以你关于“为一张纸工作”的评论是非常误导人的。这个问题已经讨论过很多次了-例如,感谢Jacob和SMor抽出时间。@JacobH和@SMor,在您的评论之后,我做了以下事情。。我不知道如何格式化评论中的内容
EXEC sp_addlinkedserver@server='ExcelServer1',@srvpproduct='ACE 12.0',@provider='Microsoft.ACE.OLEDB.12.0',@datasrc='C:\Users\venkat\Desktop\freelopers\Upwork\u tasks\Chris Hickey\Allproducts\u sheet1.xlsx',@provstr='Excel 12.0;IMEX=1;HDR=是;'''选择*FROM ExcelServer1…[Sheet1$]”选择*FROM OPENQUERY(ExcelServer1,'SELECT*FROM[Sheet1$]”)
`我现在收到此错误消息7399,级别16,状态1,第24行链接服务器“ExcelServer1”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”报告了错误。提供程序没有提供有关错误的任何信息。Msg 7303,级别16,状态1,第24行无法初始化链接服务器“ExcelServer1”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象我从SSMS检查了提供程序,它与我在上面使用的提供程序一样可用