sql server中批量插入与更新两种解决方案分享(存储过程)
北京二本学校,非主流励志句子,朱记
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
/*
在这里做逻辑处理,插入或更新操作 ...
www.jb51.net
*/
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+','
www.jb51.net
/*
在这里做逻辑处理,插入或更新操作 ...
*/
end
select @results
如果是简单单表批量插入操作的,上面方法大可不必要
作者 keenboy
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
sql某个日期是当年的第几周
/* *周一作为一周的开始 *当年的1月1号所在的周算作第一周 */ CREATE function GetWeekIndexFirstDate ( @...
[阅读全文]
-
-
数据库SQL---范式
1、数据冗余导致的问题:冗余存储、更新异常、插入异常、删除异常。 2、函数依赖:一种完整性约束。 在关系模式r(R)中,α属于R,β属于R。 1)α函数...
[阅读全文]
-
-
数据库SQL---查询
1、查询所有列 select *from emp;--*表示所有的,from emp表示从emp表中查询。 2、查询指定列 select empno,e...
[阅读全文]
-
-
-
-
-
网友评论