關(guān)于sql server批量插入和更新的兩種解決方案
.游標(biāo)方式 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
.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
如果是簡(jiǎn)單單表批量插入操作的,上面方法大可不必要
- sql server中批量插入與更新兩種解決方案分享(asp.net)
- sql server中批量插入與更新兩種解決方案分享(存儲(chǔ)過(guò)程)
- SQLServer 批量插入數(shù)據(jù)的兩種方法
- MSSQL批量替換語(yǔ)句 在SQL SERVER中批量替換字符串的方法
- SQL Server數(shù)據(jù)庫(kù)中批量導(dǎo)入數(shù)據(jù)的四種方法總結(jié)
- sqlserver中通過(guò)osql/ocmd批處理批量執(zhí)行sql文件的方法
- sqlserver 中ntext字段的批量替換(updatetext的用法)
- SQL Server修改標(biāo)識(shí)列方法 如自增列的批量化修改
- sqlserver 批量刪除存儲(chǔ)過(guò)程和批量修改存儲(chǔ)過(guò)程的語(yǔ)句
- SqlServer中批量替換被插入的木馬記錄
- SQLServer批量更新兩個(gè)關(guān)聯(lián)表數(shù)據(jù)的方法
相關(guān)文章
列出SQL Server中具有默認(rèn)值的所有字段的語(yǔ)句
上個(gè)星期我在對(duì)一個(gè)供應(yīng)商開(kāi)發(fā)的數(shù)據(jù)庫(kù)按規(guī)定進(jìn)行故障排除的時(shí)候,我們需要對(duì)他們數(shù)據(jù)庫(kù)中50個(gè)表的每一個(gè)都進(jìn)行查看,以確保所有期望是默認(rèn)值的字段都被分配了默認(rèn)值。你可以想象這是一個(gè)多么令人畏懼的工作,而我立即提出了這個(gè)問(wèn)題。有沒(méi)有一個(gè)比在SQL Server管理套件中打開(kāi)每一個(gè)表來(lái)查看這個(gè)schema的更好方法嗎?2008-10-10SQL Server中聚合歷史備份信息對(duì)比數(shù)據(jù)庫(kù)增長(zhǎng)的方法
這篇文章主要介紹了SQL Server中聚合歷史備份信息對(duì)比數(shù)據(jù)庫(kù)增長(zhǎng)的方法,需要的朋友可以參考下2014-09-09SQL server中字符串逗號(hào)分隔函數(shù)分享
繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開(kāi),在開(kāi)發(fā)中也有許多以參數(shù)的形式傳入帶逗號(hào)字條串參數(shù),需要的朋友可以參考下2016-10-10sql server自動(dòng)生成拼音首字母的函數(shù)
建立一個(gè)查詢,執(zhí)行語(yǔ)句生成函數(shù)fn_GetPy,下面是具體的實(shí)現(xiàn),需要的朋友可以參考下2014-01-01SQL數(shù)據(jù)庫(kù)實(shí)例名稱找不到或遠(yuǎn)程連接失敗并顯示錯(cuò)誤error40的原因及解決辦法
這篇文章主要介紹了SQL數(shù)據(jù)庫(kù)實(shí)例名稱找不到或遠(yuǎn)程連接失敗并顯示錯(cuò)誤error40的原因及解決辦法,需要的朋友可以參考下2015-11-11如何恢復(fù)SQL Server 2000損壞的數(shù)據(jù)庫(kù)文件
在現(xiàn)實(shí)情況中由于硬件和軟件的原因可能導(dǎo)致數(shù)據(jù)庫(kù)文件損壞,那么損壞的數(shù)據(jù)庫(kù)文件有沒(méi)有辦法修復(fù)呢?下面講講如何恢復(fù)SQL Server 2000損壞的數(shù)據(jù)庫(kù)文件2014-01-01如何遠(yuǎn)程連接SQL Server數(shù)據(jù)庫(kù)的圖文教程
如何遠(yuǎn)程連接SQL Server數(shù)據(jù)庫(kù)的圖文教程...2007-03-03SQL Server 數(shù)據(jù)庫(kù)備份和還原認(rèn)識(shí)和總結(jié) (一)
可能許多同學(xué)對(duì)SQL Server的備份和還原有一些了解,也可能經(jīng)常使用備份和還原功能,我相信除DBA之外我們大部分開(kāi)發(fā)員隊(duì)伍對(duì)備份和還原只使用最基礎(chǔ)的功能,對(duì)它也只有一個(gè)大概的認(rèn)識(shí),如果對(duì)它有更深入的認(rèn)識(shí),了解它更全面的功能豈不是更好,到用時(shí)會(huì)得心應(yīng)手2012-08-08