数据库|mysql教程
批量插入,批量更新
数据库-mysql教程
cpapc手机二合一源码,ubuntu终端文字修改,tomcat查询内存大小,python 定向爬虫,天津php培训学费,掇刀区seo关键词排名优化代理lzw
对于sql 来说操作集合类型(一行一行)是比较麻烦的一件事,而一般业务逻辑复杂的系统或项目都会涉及到集合遍历的问题,通常一些人就想到用游标,这里我列出了两种方案,供大家参考
微信赚钱网站源码,vsCode C编译配置,ubuntu字体尺寸,tomcat 404调试,sqlite3 键值对,前端开发为什么用框架,我的世界爬虫比赛指令,php下载 mac,万州seo推广,学校网站模板 html,抽签 网页 源码,dede seo博客模板lzw
微擎智慧城市源码,ubuntu的盘在哪,爬虫经历几个阶段,php一次性存储大量数据,seo竞争比赛lzw
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
如果是简单单表批量插入操作的,上面方法大可不必要
作者 keenboy