当前位置:  数据库>sqlserver

sql server批量插入与更新的实现代码

    来源: 互联网  发布时间:2014-08-29

    本文导语:  1、游标方式 代码示例: DECLARE @Data NVARCHAR(max) SET @Data='1,tanw;2,keenboy' --Id,Name DECLARE @dataItem NVARCHAR(100) DECLARE data_cursor CURSOR FOR (SELECT * FROM split(@Data,';')) OPEN data_cursor FETCH NEXT FROM data_cursor INTO @dataItem WHILE @@FETCH_STATUS=0 BEGIN DECLARE...

1、游标方式

代码示例:

DECLARE @Data NVARCHAR(max)
SET @Data='1,tanw;2,keenboy' --Id,Name

DECLARE @dataItem NVARCHAR(100)
DECLARE data_cursor CURSOR FOR (SELECT * FROM split(@Data,';'))
OPEN data_cursor
FETCH NEXT FROM data_cursor INTO @dataItem
WHILE @@FETCH_STATUS=0
BEGIN
DECLARE @Id INT
DECLARE @Name NVARCHAR(50)

DECLARE dataItem_cursor CURSOR FOR (SELECT * FROM split(@dataItem,','))
OPEN dataItem_cursor
FETCH NEXT FROM dataItem_cursor INTO @Id
FETCH NEXT FROM dataItem_cursor INTO @Name
CLOSE dataItem_cursor
DEALLOCATE dataItem_cursor

/*
这里做逻辑处理,插入或更新操作等
*/
END

CLOSE data_cursor
DEALLOCATE data_cursor

2、While方式

代码示例:

DECLARE @Data NVARCHAR(max)
SET @Data='tanw,keenboy' --Id,Name

DECLARE @Temp TABLE
(
Id INT IDENTITY(1,1),
Name NVARCHAR(50)
)
DECLARE @Id INT
DECLARE @Name NVARCHAR(50)
DECLARE @Results NVARCHAR(MAX) SET @Results=''
INSERT INTO @Temp SELECT (SELECT * FROM split(@Data,';'))

WHILE EXISTS(SELECT * FROM @Temp)
BEGIN
SELECT TOP 1 @Id=Id,@Name=Name from @Temp
DELETE FROM @Temp where [id] = @Id
SET @Results=@Results+@Name+','

/*
这里做逻辑处理,插入或更新操作等
*/
END
SELECT @Results

注意,以上代码不适合简单的单表批量插入,因为这样的操作一句sql就搞定了,无需这么大的工程,呵呵。


    
 
 

您可能感兴趣的文章:

  • 循环里面执行sql插入语句只执行第一个插入,为什么??
  • 中文插入SQL数据库中变成了乱码?
  • 急问题:在java中嵌入sql的插入语句,插入成功,但是出现异常
  • 用什么格式插入SQL SERVER的datetime数据
  • jsp中插入有主关键字的数据库的sql语句如何写???
  • 完美解决SQL server2005中插入汉字变成问号的问题
  • sql 插入单引号、添加、删除字段的例子
  • 写sql进数据库(DB2)怎样实现自动插入(表的主键为String)
  • sql 语句插入结果为select和值混合示例
  • 探讨:sql插入空,默认1900-01-01 00:00:00.000的解决方法详解
  • SQL 分布式查询、插入递增列示例
  • SQL Server手工插入标识列的方法
  • sql server 2008 将某表中数据随机插入另一个表的方法
  • php CI框架插入一条或多条sql记录示例
  • 用SQL批量插入数据的代码
  • 使用SQL Server 获取插入记录后的ID(自动编号)
  • 在SQL Server数据库中为标识(IDENTITY)列插入显式值
  • sql server 触发器实例(判断是插入、删除,还是修改)
  • 有关java.sql.ResultSet 利用SetDate往 oracle 中插入时间和日期的问题!!
  • SQL学习笔记二 创建表、插入数据的语句
  • sql2005 大数据量检索分页的sql代码
  • 经典sql代码--解决并清除SQL被注入恶意代码的语句
  • 创建 sql server 链接服务器的sql代码
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码
  • SQL Server中选出指定范围行的SQL语句代码
  • 推荐SQL Server 重新恢复自动编号列的序号的sql代码
  • C#代码验证sql语句是否正确(只验证不执行sql)的方法
  • php防止sql注入代码实例
  • sql 查询所有数据库、表名、表字段的代码
  • sql 行转列示例代码
  • asp连接sql server 2005的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • 我想把csdn的论坛改成一个软件平台,另外增加数据查询功能,聊天功能,不知怎样实现比较好?我想用jbuider 7+SQL server实现,不知如何?
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • SQL Server设置主键自增长列(使用sql语句实现)
  • 如何实现DOS下用Turbo C 连接SQL Server 7?
  • 在SQL server 2000中用JAVA实现图片存储
  • 如何实现用jsp将sql server 的数据备份出来!并指定存放路径!
  • 如何实现图片上传啊,而且我想把它记录在SQL SERVER中!!有空请帮我!!!
  • 用oracle pl/sql 从A unix机器,去读取B unix机器上的一个文件,怎么实现?
  • 用SQL语句实现替换字符串
  • SQL Server 7.0或2000 的jdbc驱动程序中提供了连接池的实现吗?
  • sql函数实现递归查询示例
  • sql server中通过查询分析器实现数据库的备份与恢复方法分享
  • SQL Server本地时间和UTC时间的相互转换实现代码
  • java实现简单的给sql语句赋值的示例
  • T-SQL 实现一个简单的 Split 函数
  • 在SQL中获取一个长字符串中某个字符串出现次数的实现方法
  • sql server日期相减 的实现详解
  • 请教:如何用shell实现指定log文件(比如a.log)中的指定内容(SQL_ID和SQL的处理部分)的收集
  • sql复制表结构和数据的实现方法
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3