2012-09-20 17 views
8

olmadan geri almak nasıl, ben bu sorguyu yürütür:Ben büyük bir hata yaptım işlem

update Contact set ContaPassword = '7FD736A3070CB9766' 

Ben WHERE maddesini unuttum, bu yüzden bu şekilde tüm kullanıcılar için şifre güncellendi. Ben üretim verileri her türlü başlamadan neden :(

Ben bu sorgu önce verileri kurtarabilirsiniz bir yolu var mı? Eğer bir BEGIN TRANSACTION/ROLLBACK dışına kaçsam

+0

Yedeklemenizden kurtarın. – Oded

+11

[Buraya answer bakın] (http://dba.stackexchange.com/a/998/3690) –

+0

SQL Server'da Ctrl + Z yok. –

cevap

6

Değişikliği geri alamazsınız. Bu ile güncelleyin:..

BEGIN TRANSACTION 

-- report the bad or undesired data condition before-hand 
SELECT ... 

-- change the data 
INSERT/UPDATE/DELETE ... 

-- ensure we changed a reasonable number of records; may not be accurate if table has triggers 
SELECT @@ROWCOUNT 

-- get the data condition afterwards and be sure it looks good. 
SELECT ... 

-- always start with this enabled first 
ROLLBACK 

-- don't do this until you are very sure the change looks good 
-- COMMIT 

Martin Smith bu konuda this excellent post by Brent Ozar on dba.stackexchange.com işaret tam iyileşme modunda, nelerin değiştiğini görmek için günlük dosyalarını incelemek mümkündür

Ayrıca Oded belirttiği gibi, eğer yedekler var, zor değil orijinal verilere geri dönmek için. Yedeklemeyi bir yere geri yükleyebilir ve orijinal verileri kopyalayabilirsiniz.

+0

Yanıtladığınız için teşekkürler, aslında veritabanı için günlük yedeklemeler yapıyoruz, bu yüzden verileri kurtardık ve harika oldu :) – kbaccouche

İlgili konular