CREATE PROC proc_excel_to_sql
(
@path VARCHAR(50),
@tbname varchar(50)
)
AS
SET @path='c:\book1.xls'
SET @s=''Microsoft.Jet.OLEDB.4.0','Data Source="‘+@path+’";Extended properties=Excel 5.0''
SET @s='SELECT * INTO ('+@tbname+') FROM OPENDATASOURCE('+@s+')...sheet1$'
EXEC(@s)
想做一个存储过程把excel导入sql。上面的有问题,该怎么解决呢?
(
@path VARCHAR(50),
@tbname varchar(50)
)
AS
SET @path='c:\book1.xls'
SET @s=''Microsoft.Jet.OLEDB.4.0','Data Source="‘+@path+’";Extended properties=Excel 5.0''
SET @s='SELECT * INTO ('+@tbname+') FROM OPENDATASOURCE('+@s+')...sheet1$'
EXEC(@s)
想做一个存储过程把excel导入sql。上面的有问题,该怎么解决呢?
两个单引号表示一个
还有里面貌似有全交引号
你可以先print @s先看看
@path VARCHAR(50),
@tbname varchar(50)
AS
BEGIN
declare @s varchar(max)
SET @path='c:\book1.xls'
SET @s='SELECT * INTO ('+@tbname+') FROM OPENDATASOURCE(''Microsoft.Jet.OLEDB.4.0'',''Data Source='''+@path+''';Extended Properties=Excel 5.0'')...sheet1$'
EXEC(@s)
END
GO
试试!
(
@path VARCHAR(50),
@tbname varchar(50)
)
AS
--SET @path='c:\book1.xls'
declare @s varchar(1000)
SET @s=' FROM OpenRowSet(''MICROSOFT.JET.OLEDB.4.0'',''EXCEL 8.0;HDR=YES;IMEX=2;DataBase='+@path+''',[sheet1$]) t'
SET @s='SELECT * INTO '+@tbname+@s
--print @s
EXEC(@s)
go