当前位置:首页 » 数据仓库 » c批量修改数据库数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c批量修改数据库数据

发布时间: 2022-10-07 21:00:39

A. 数据库中如何大批量修改数据

直接UPDATE修改,没有必要做什么特殊操作,只是要避免死锁,修改的时候其它人不要进来查询就好。

B. 如何批量修改oracle数据库中某一个表中的某一列数据

最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能). 虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键

1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:
ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键

1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:
ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键

C. 数据库里,我要批量修改一个字段。把c改成D-30。如何修改。

UPDATE 表 set 字段= REPLACE(字段,'C','D - 30') from表

D. 怎样修改数据库中的数据

1、首先打开sql Server Management管理工具,使用sql语句创建一张测试表。

E. 如何批量修改多个数据库里的数据

一个一个的来吧!
还有,如果你的要批量添加的信息都是一样的话,并且,你可以用工具操作数据库,那就恭喜你了
你批量弄好一个库以后,把里面的复制到其他库中,就OK了

F. c#中怎样批量更新数据库的数据

如果每个用户请求更改一行,那他就只能该一行就更新,这个逻辑没有错。
如果你要让他不是及时更新,可以做成队列。
SQL语句更新的速度可能是比存储过程慢一些,但是一个区区30万的小数据,对于SQL
SERVER数据库来说根本就是小菜。
换句话说,别说SQL
SERVER了,就是MYSQL这种小型数据库,对付百万级的数据都是很轻松的。。。

G. 如何批量修改数据库里所有表的所有字段

使用存储过程,逐个表进行修改,吧不需要的字段去掉,虽然比较繁琐,但是由于字段名大多相同或类似,可以写一条,然后复制一下,再把表明改城下一个表

H. C#的WinFrom DataGridView如何实现批量数据修改

界面修改的数据直接可以在DataGridView控件中读出来
dgvDataList.Rows[i].Cells["修改的列名"]
先在控件中修改数据
再用一个for循环,
//连接数据库Open
for(int
i=0;i<dgvDataList.Rows.Count;i++)
{
//Update
..
set
[要更新的列]
=dgvDataList.Rows[i].Cells["控件中修改数据的列名"].ToString()
where
[主键列ID]=dgvDataList.Rows[i].Cells["主键列"].ToString()
}
//关闭数据库连接Close

I. 如何批量修改数据库中不同字段中相同的值

use test --修改为你的数据库名称
declare tb_name cursor for select NAME,ID from sysobjects WHERE TYPE='U' --得到用户表的ID
declare @in_char varchar(20)

set @in_char='%<script>%'
---查找注入字符串
declare @tj varchar(5000)
set @tj=' where '
declare @i int
set @i=0
declare @sql varchar(200)
DECLARE @table_name varchar(50)
DECLARE @table_id varchar(50)
DECLARE @feild_name varchar(50)
DECLARE @fd_count int
open tb_name
FETCH next FROM tb_name into @table_name,@table_id
while
@@FETCH_STATUS=0

begin

set @i=0
declare fd_name cursor for SELECT NAME FROM syscolumns
where id=@table_id and type=39 group by name--得到用户表某一ID的所有字符类型字段名称
open fd_name
FETCH next FROM fd_name into @feild_name
print @fd_count

while
@@FETCH_STATUS=0

begin

set @i=@i+1
set @tj=@tj+@feild_name +' like '''+ @in_char +'''' +(case when (SELECT count(type) as fd_count FROM syscolumns
where id=@table_id and type=39)
>@i then ' or ' else ' 'end)
FETCH next FROM fd_name into @feild_name

end
-- print @tj
if @tj!=''
begin
SET @SQL='DELETE FROM '+@TABLE_NAME+@TJ
print '切记先运行代码看print 出来的SQL确认后再删除数据,即将运行的代码是 '
print '===================================================================='
print @SQL
print '===================================================================='
--切记先运行代码看print 出来的SQL确认后再删除数据
exec(@sql) --修改注释后删除数据
end
set @tj=''
CLOSE fd_name
deallocate fd_name
FETCH next FROM tb_name into @table_name,@table_id
end
close tb_name
deallocate tb_name

J. 怎么批量修改数据库表中的某一个字段

一个语句就能修改(如果是ACCESS的话选新建查询输入SQL语句):

UPDATE proct SET addtime='2007-2-10' WHERE addtime='2007-1-23'

如果是微软的ACCESS或者SQL SERVER的话,好像不支持日期类型和串类型的字段转换,语句应该这样:

UPDATE proct SET addtime=datevalue('2007-2-10') WHERE addtime=datevalue('2007-1-23')