SQL Server导入数据没有链接服务器/导入

时间:2018-04-13 10:14:53

标签: sql sql-server

有没有办法将数据从Excel或csv文件导入SQL Server表而不使用链接服务器/ BULK INSERT / OPENROWSET等&导入实用程序?

我正在寻找更适合我的SQL查询。

我可以使用导入实用程序,但我希望在脚本中使用它。任何人都有T-SQL吗?

2 个答案:

答案 0 :(得分:0)

兄弟试试吧。它将有助于增加你的研发范围。

-- One-time exec--------

EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
EXEC sp_configure 'xp_cmdshell', 1;  
GO  
ECONFIGURE;  
GO  
--------------------------

--Query Command
EXEC master.dbo.xp_cmdshell 'type D:\Excel_test.txt'

通过使用它你可以读取文本文件,XML文件等,Office文件无法正确读取,因此,需要更多的R& D. 这是可行的,您可以在编码中尽一切可能。 您还可以在Mssql中学习文件组。

我希望如果你愿意,它会帮助你并标记我。

答案 1 :(得分:0)

您可以选择各种类型的选项。当然,您可以双向移动数据。

将数据导出到Excel文件 创建一个名为testing的Excel文件,其标题与SQLServerTable列的标题相同 这是查询: Excel 2003(.Xls)文件:

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;', 'SELECT * FROM [Sheet1$]') select * from SQLServerTable

Excel 2007(.Xlsx)文件:

insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\testing.xlsx;', 'SELECT * FROM [Sheet1$]') select * from SQLServerTable

将数据从Excel导入新的SQL Server表 Excel 2003(.Xls)文件:

select * into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')

Excel 2007(.Xlsx)文件:

Select * into SQLServerTable FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\testing.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')

将数据从Excel导入现有SQL Server表 Excel 2003(.Xls)文件:

Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')

Excel 2007(.Xlsx)文件:

INSERT INTO SQLServerTable select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\testing.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')

您可以使用VBA轻松完成工作。

https://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm#Excel%20Data%20Export%20to%20SQL%20Server%20Test%20Code