create procedure exceltosql
@fileth varchar(100)
as
insert into staff select * from OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',
'Data Source=C:\Users\Chang\Desktop\第XX期人员信息.xlsx;Extended Properties=Excel 8.0')...Sheet1$
go
其中 “C:\Users\Chang\Desktop\第XX期人员信息.xlsx”由filepath代替,但是如果写成
insert into staff select * from OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',
'Data Source=@filepath;Extended Properties=Excel 8.0')...Sheet1$
一直通不过的。。求大神帮忙!
谢谢了,但是那样的话提示 “'+' 附近有语法错误。应为‘)’”
追答这是因为OPENDATASOURCE不支持变量参数, 必须固定写好. 再想想办法 ...
办法就是: 使用sp_executesql来执行动态生成的SQL语句. 示例:
declare @fileName nvarchar(100), @s nvarchar(2000)该示例只执行从Excel文件查询资料的操作, 你的插入操作类似修改就可以了.