在Excel导入到SQL Server表期间添加列

时间:2012-12-19 20:07:57

标签: sql-server tsql excel-2010 import-from-excel

我有一个脚本可以创建一个表以及一个用于跟踪负责导入的文件名的列。

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

然后我需要执行具有不同文件名的其他导入。我不相信这句话在语法上是正确的,它阻止了导入。

INSERT INTO dbo.SQLServerTable 
Select *, 'File2.xlsx' as 'FileName' 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel      12.0;Database=D:\Convert\Converted\File2.xlsx;HDR=YES', 'SELECT * FROM [Worksheet$]')

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题,这是因为默认表值,对于字符串值,这将是例如varchar(50),其中我需要一个varchar(120)

我的解决方案是将excel放入csv文件(标准保存在excel中),然后使用sql导入/导出UI将文件导入表中。在此过程中,您可以看到所有默认值,然后通过高级选项卡将这些值更改为您自己的首选项。