Update

確認更新查詢成功的最佳實踐是什麼

  • December 5, 2017

如果我正在執行一個影響例如 1000 行的 SQL 更新查詢,我如何檢查查詢是否按預期工作並且沒有遇到任何奇怪的邊緣情況(我自己沒有目視檢查每一行)?對此的最佳做法是什麼?

評論中要求的附加資訊我正在編寫一個 SQL 查詢,以使用標準值更新列中空白的任何欄位。這本身就很容易,而且欄位的數量足夠小,我可以直覺地檢查它們。但我認為可能會有更複雜的查詢,涵蓋大量無法檢查的欄位。

您可以在查找要更新的特定條件之前和之後進行查詢。

對於即席查詢,最好在作為更新語句執行之前使用相同的 where 子句將查詢作為選擇語句執行。

除非數據已更改,否則更新應更新 select 返回的完全相同的行。

create table #test ([id] int identity (1,1), [status] varchar(50) )

insert into #test VALUES ('COMPLETED')
insert into #test VALUES ('FAULTED')
insert into #test VALUES ('COMPLETED')
insert into #test VALUES ('FAULTED')
insert into #test VALUES ('FAULTED')    

select status
from #test 
where status = 'FAULTED'

select count(*) 
from #test 
where status = 'FAULTED'

update #test 
set status = 'FAILED'
where status = 'FAULTED'

select count(*) 
from #test 
where status = 'FAULTED'

select status, count(*) 
from #test 
group by status

引用自:https://dba.stackexchange.com/questions/192386