excel导入db的存储过程解决方法
excel导入db的存储过程
select * into @tableName from
OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 5.0;HDR=YES;DATABASE=@excelRoute',sheet1$)
如上,把这个写成存储过程,应该怎么写?主要是表名和excel表的路径是变量。应该怎么写?谢谢各位大神了。。
------解决思路----------------------
把表名和excel路径作为存储过程的变量传入, 内部通过动态SQL处理.
select * into @tableName from
OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 5.0;HDR=YES;DATABASE=@excelRoute',sheet1$)
如上,把这个写成存储过程,应该怎么写?主要是表名和excel表的路径是变量。应该怎么写?谢谢各位大神了。。
------解决思路----------------------
把表名和excel路径作为存储过程的变量传入, 内部通过动态SQL处理.
CREATE PROC testProc @tableName VARCHAR(99),@excelRoute VARCHAR(99)
AS
DECLARE @strSql AS NVARCHAR(MAX);
SET @strSql =
'SELECT * into @tableName from
OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 5.0;HDR=YES;DATABASE=@excelRoute'',sheet1$)
';
SELECT @strSql = REPLACE(REPLACE(@strSql,'@tableName',@tableName),'@excelRoute',@excelRoute);
EXEC sp_executesql @strSql;