一篇关于sqlserver批量插入和更新的两种如何解决方案

公园里的草真绿啊,绿得让你感觉那是一块绿地毯;公园里的草真密啊,密得看不见泥土;公园里的草真柔啊,微风一吹,它们就翩翩起舞。


.游标方式 1 DECLARE @Data NVARCHAR(max)
SET @Data='1,tanw;2,keenboy' --Id,NameDECLARE @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/*
在这里做逻辑处理,插入或更新操作 ...
*/
ENDCLOSE data_cursor
DEALLOCATE data_cursor


.While方式
DECLARE @Data NVARCHAR(max)
SET @Data='tanw,keenboy' --Id,NameDECLARE @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

如果是简单单表批量插入操作的,上面方法大可不必要

到此这篇关于一篇关于sqlserver批量插入和更新的两种如何解决方案就介绍到这了。人生不是一支短短的蜡烛,而是一只由我们暂时拿着的火炬;我们一要把它燃得十分光明灿烂,然后交给下一代的人们。更多相关一篇关于sqlserver批量插入和更新的两种如何解决方案内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
SQL SERVER临时表排序问题的如何解决方法

Vscode上如何使用SQL的方法

SQL Server 批量插入数据的完美如何解决方案

浅析SQL Server授予了CREATE TABLE权限但是无法创建表

group by 按某一时间段分组统计并查询(推荐)