SQL Server 批量插入与更新两种解决方案分享(存储过程)
2022-11-12 09:49:27
内容摘要
这篇文章主要为大家详细介绍了SQL Server 批量插入与更新两种解决方案分享(存储过程),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
1.
文章正文
这篇文章主要为大家详细介绍了SQL Server 批量插入与更新两种解决方案分享(存储过程),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
1.游标方式
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <code> 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.512pic.com */ END CLOSE data_cursor DEALLOCATE data_cursor </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <code> 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.512pic.com /* 在这里做逻辑处理,插入或更新操作 ... */ END SELECT @Results </code> |
注:关于SQL Server 批量插入与更新两种解决方案分享(存储过程)的内容就先介绍到这里,更多相关文章的可以留意
代码注释