C 批量更新sql server資料庫資料

2021-09-05 02:05:02 字數 1530 閱讀 1691

批量更新有兩種策略:

第一種方式:拼接所有更新字串,在資料庫一次性執行,這樣減少資料更新時頻繁的連線斷開資料庫。

第二種方式:把要更新的資料寫入資料庫全域性臨時表,然後利用sql語句更新,最後把原表中不存在的資料獲取到再批量寫入。

以下是第二種方式的實現。

該方式中有投機取巧的嫌疑,但是確實能對在單機大批量更新的操作有很大幫助。

1、tablename是要更新資料庫的名稱。

2、datatable是以datatable結構的資料,和被更新的資料表結構一致。

3、idname更新依據,即當id或name相同時更新其餘項。

4、connection資料庫連線字串。

5、本函式有很多寫的不完善的地方,可以自己修改或按照思路重寫。

///

/// 批量更新函式

///

/// 被更新表表名

/// 更新資料庫表新資料

/// 更新依據

/// 資料庫連線字串

static public void sqlbulkupdate(string tablename, datatable datatable, string idname, string connection)

", datetime.today.tostring("yyyymmddhhmmss"));

string temp = string.format("select * into from where 1 = 2;", temptablename, tablename);

sqlcommand command = new sqlcommand(temp, connection);

command.executenonquery();

command.dispose();

sqlbulkcopybydatatable(connection,temptablename, datatable);

stringbuilder stringbuilder = new stringbuilder();

sqlcommand command2 = new sqlcommand(stringbuilder.tostring(), connection);

command2.executenonquery();

command2.dispose();

string insertstr = string.format("select * from as a where a. not in (select b. from as b)", temptablename, tablename, idname);

dataset insertset = execdataset(connection,insertstr);

if (insertset.tables[0].rows.count > 0)

connection.close();

connection.dispose();

}catch (exception e)}}

catch (exception e)

}

SQL Server批量插入批量更新工具類

思路 批量插入,使用sqlbulkcopy 批量更新,定義臨時表,使用sqlbulkcopy批量插入臨時表,用sql語句更新臨時表資料到實際表 定義 批量插入 資料庫表名,不傳表示取泛型t的型別名稱 欄位名陣列,不傳表示取泛型t的所有屬性名稱 public bool sqlbulkcopy ilis...

Python 批量插入SQL Server 資料庫

需要將一批資料插入sql server 資料庫,經過查證可以採用批量插入的方法,遇到一些坑,特記錄一下 批量插入方法如下 sql 1 insert into f rnfl mt2 id,fymdh,ymdh,rn,unitname,comments values data 1,2020 06 10 ...

SqlServer 利用游標批量更新資料

游標在有時候會很有用,在更新一部分不多的資料時,可以很方便的更新資料,不需要再寫乙個小工具來做了,直接寫 sql 就可以了 下面來看乙個實際示例 宣告字段變數 declare regioncode int declare regionname nvarchar 64 declare province...