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')