有没有办法将数据从Excel或csv文件导入SQL Server表而不使用链接服务器/ BULK INSERT / OPENROWSET等&导入实用程序?
我正在寻找更适合我的SQL查询。
我可以使用导入实用程序,但我希望在脚本中使用它。任何人都有T-SQL吗?
答案 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轻松完成工作。