sql server游标读取excel文件数据,更新到指定表中

Posted 442562623

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server游标读取excel文件数据,更新到指定表中相关的知识,希望对你有一定的参考价值。

begin
declare @a int,@error int   
DECLARE @EBSCode nvarchar(50)
DECLARE @EBSName nvarchar(50)
DECLARE @FilePath nvarchar(200)
  set @a=1
    set @error=0

DECLARE table_cursor CURSOR FOR
     (select * from OpenDataSource (Microsoft.Ace.OLEDB.12.0,Data Source="D:20191217123.xlsx";Extended properties="Excel 12.0;HDR=Yes")...[sheet1$])
         
OPEN table_cursor
 
FETCH NEXT FROM table_cursor into @EBSCode,@EBSName,@FilePath
 
WHILE @@FETCH_STATUS=0
BEGIN
    update Basic_ModelImport set FilePath=/jfiles/upload/20191217/+@FilePath where IsDeleted=0 and [Type]=0 and TenantId=1 and EBSCode=@EBSCode
     set @a=@a+1
            set @error= @error + @@ERROR   --记录每次运行sql后是否正确,0正确
FETCH NEXT FROM table_cursor into @EBSCode,@EBSName,@FilePath
END
 
CLOSE table_cursor
DEALLOCATE table_cursor
end
go

select * from OpenDataSource (Microsoft.Ace.OLEDB.12.0,Data Source="D:20191217123.xlsx";Extended properties="Excel 12.0;HDR=Yes")...[sheet1$]




--开启
exec sp_configure show advanced options,1
reconfigure
exec sp_configure Ad Hoc Distributed Queries,1
reconfigure

--关闭
exec sp_configure Ad Hoc Distributed Queries,0
reconfigure
exec sp_configure show advanced options,0
reconfigure

 --允许在进程中使用ACE.OLEDB.12
    EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NAllowInProcess, 1
    --允许动态参数
    EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NDynamicParameters, 1

       --不允许在进程中使用ACE.OLEDB.12
    EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NAllowInProcess, 0
    --不允许动态参数
    EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NDynamicParameters, 0

 

以上是关于sql server游标读取excel文件数据,更新到指定表中的主要内容,如果未能解决你的问题,请参考以下文章

sql server 中游标详解

SQL server2014数据库存储过程 实现游标循环读取 循环插入数据

SQL Server基础之游标

SQL Server 游标

SQL Server游标

sql server数据库中用游标进行更新