Excel数据导入SQL Server2000的存储过程

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,独享型 2核4GB
简介: 一、创建存储过程的代码如下:--创建存储过程SET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGOCreate PROCEDURE u_FH_S...


一、创建存储过程的代码如下:

--创建存储过程
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
Create  PROCEDURE u_FH_SK
AS
Declare @err1 int
SET @err1 = 0

SET NOCOUNT ON
--设置事务隔离级别
--SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
--OLE/DB provider  不支持隔离层
Begin Tran --开始事务
  --SET XACT_ABORT ON --
   if (select count(*) from FH_SK2)=0
 begin
  --把数据从Excel表导入到网站位表中
  insert into FH_SK2
  SELECT *
  FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";Extended properties=Excel 8.0')...[sheet1$]
 end

 COMMIT TRAN
SET NOCOUNT OFF

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

--执行SQL
EXECUTE u_FH_SK

--查询导入的数据
select * from FH_SK2

ps:FH_SK2是SQL中的数据表,test.xls位于c盘下,sheet1$是默认的第一个tab页(值得注意的是数据库表和Excel表字段个数和类型要完全一致)

如果Excel字段非常多,涉及到行列转换问题,如下:

如图1所示的一个Word表格为例,向大家介绍具体的转置方法。

  


图1

  1. 首先要在Word中右击表格左上角的十字标全选整个表格,然后执行右键菜单中的“复制”命令

  2. 接下来打开Excel,在任意单元格处点击鼠标右键,选择“选择性粘贴→文本”命令,将Word表格粘贴到Excel中。如图2所示

  


图2

  3. 右击并复制图2中这些带有数据的单元格(记住,此步不可缺少,至关重要!)

  4. 然后切换到另一空白工作表中,右击并执行“选择性粘贴”命令。最后在弹出的如图3所示对话框中勾选“转置”复选框后点击确定即可

  


图3

  5. 此时,您便会发现Excel表格中的行列已经按照我们的要求互换了,而且各个单元格的数据也分毫不差,这时再将转置好的表格拷贝回Word就行了。如图4所示就是已经转换好的Word表格,怎么样?效果不错吧。

  



二、执行存储过程

在执行存储过程中,可能会遇到如下错误提示:服务器×××上的MSDTC不可用

解决办法如下:


MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器 .
位置:控制面板--管理工具--服务--Distributed Transaction Coordinator
依存关系:Remote Procedure Call(RPC)和Security Accounts Manager
建议:一般家用计算机涉及不到,除非你启用Message Queuing服务,可以停止。
解决办法: 1. 在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->属性-->启动
        2.在CMD下运行"net start msdtc"开启服务后正常

如果在第1步Distributed Transaction Coordinator 无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。重新创建 MSDTC 日志,并重新启动服务的步骤如下:
(1) 单击"开始",单击"运行",输入 cmd 后按"确定"。
(2) 输入:msdtc -resetlog (注意运行此命令时,不要执行挂起的事务)
(3) 最后输入:net start msdtc 回车,搞定!


相关实践学习
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何将SQL Server中的数据转存到MongoDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
252 1
|
1月前
|
SQL 存储 数据库
excel导入sql数据库
将Excel数据导入SQL数据库是一个相对常见的任务,可以通过多种方法来实现。以下是一些常用的方法: ### 使用SQL Server Management Studio (SSMS) 1
|
2月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
30 1
|
1月前
|
存储 SQL 数据库
SQL 语言:存储过程和触发器
SQL 语言:存储过程和触发器
38 6
|
15天前
|
存储 机器学习/深度学习 SQL
SQLSERVER存储过程语法详解
SQLSERVER存储过程语法详解
26 0
|
1月前
|
SQL 存储 数据可视化
excel表格sql数据库
Excel表格和SQL数据库是两种不同的数据管理工具,它们各自有自己的特点和用途。下面我将分别介绍它们,并探讨它们之间的关系和互操作性。 一、Excel表格 Excel是微软公司推出的一款
|
2月前
|
SQL 数据处理 HIVE
实时计算 Flink版产品使用合集之将OceanBase的CDC数据导入到Flink SQL的任务的步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
24 1
|
1月前
|
存储 SQL Oracle
oracle 存储过程导出sql语句 导出为文件
oracle 存储过程导出sql语句 导出为文件
106 0
|
2月前
|
存储 SQL
SQL Server 存储过程 触发器 事务处理
SQL Server 存储过程 触发器 事务处理