sql server中批量插入与更新两种解决方案分享(存储过程)
对于sql 来说操作集合类型(一行一行)是比较麻烦的一件事,而一般业务逻辑复杂的系统或项目都会涉及到集合遍历的问题,通常一些人就想到用游标,这里我列出了两种方案,供大家参考
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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

標題:Oracle預存程序實現批次更新的步驟與注意事項在Oracle資料庫中,預存程序是一組為了提高資料庫效能、重複使用程式碼、增強安全性的SQL語句集合,透過預存程序可以實現批次更新資料的操作。本文將介紹如何使用Oracle預存程序實現批次更新,並提供具體的程式碼範例。步驟一:建立預存程序首先,我們需要建立一個預存過程,用來實現批次更新的操作。以下是建立預存程序的

Excel資料匯入Mysql常見問題總結:如何解決匯入資料時遇到的大批量插入問題?導入Excel資料到MySQL是日常開發中經常遇到的任務之一。對於少量資料的導入,可以使用資料庫客戶端工具或命令列進行插入操作。但當面對大批量資料匯入時,簡單的單一插入操作無疑會導致嚴重的效能問題。本文將介紹如何解決這個問題,並給出相應的程式碼範例。問題描述:在實際使用過程中,

Oracle儲存程序批次更新在資料處理中的應用案例在實際的資料處理中,我們經常需要對資料庫中的大量資料進行更新作業。 Oracle資料庫提供了預存程序的功能,可以有效處理這些大批量資料更新的操作,並提高資料處理效率和效能。在本文中,我們將介紹Oracle預存程序批次更新的應用案例,並提供具體的程式碼範例,幫助讀者更好地理解並運用此功能。案例背景假設我們有一個

Vue和Excel的默契合作:如何實現資料的批次更新和匯入引言:隨著資訊科技的快速發展,Excel表格作為一種流行的資料管理工具,被廣泛應用於各個產業和領域。同時,Vue作為一種靈活、高效的前端開發框架,也廣受歡迎。本文將介紹如何透過Vue和Excel的默契合作,實現資料的批次更新和匯入。為了幫助讀者更好地理解,我們將給出程式碼範例。實現資料批量更新:在V

Vue和Excel的高效組合:如何實現資料的批次更新和匯入隨著Web應用程式的不斷發展和資料量的不斷增加,我們經常會遇到需要批次更新和匯入資料的情況。而Excel作為廣泛使用的電子表格工具,具有強大的資料處理和匯入匯出功能,成為我們處理大量資料的首選工具之一。本文將介紹如何使用Vue和Excel實現資料的批次更新和匯入,以提高資料處理的效率。首先,我們需

在本文中,我們將看到如何在Hibernate中執行批次插入/更新。每當我們執行一條sql語句時,我們都是透過對資料庫進行網路呼叫來完成的。現在,如果我們必須在資料庫表中插入10個條目,那麼我們必須進行10次網路呼叫。相反,我們可以透過使用批次來優化網路呼叫。批次允許我們在單一網路呼叫中執行一組SQL語句。為了理解和實作這一點,讓我們定義我們的實體−@EntitypublicclassParent{@Id@GeneratedValue(strategy=GenerationType.AUTO)

Java開發中如何解決資料庫更新效能問題摘要:隨著資料量的增加和業務的變化,資料庫更新的效能問題成為了Java開發中一大挑戰。本文將介紹一些常見的解決資料庫更新效能問題的方法和技巧。關鍵字:Java開發,資料庫,更新效能問題,解決方法引言:在大多數Java應用程式中,資料庫扮演著重要的角色。資料庫的效能直接影響了應用程式的反應速度和穩定性。而在實際開發中,數

MySQL是一種廣泛使用的關聯式資料庫管理系統,其提供了許多有效的資料操作方法。當需要更新大量資料時,可以使用批次更新方法來提高效率。本文將介紹MySQL中的批次更新方法。一、什麼是批次更新?批次更新是指透過一條SQL語句來更新多個資料行。相較於每次更新一行的方法,批次更新能夠有效降低資料庫的負載和網路傳輸時間,提升資料操作的效率和速度。二、批次更新的實現方
