17 Kasım 2009, Salı
SQL Server - işlem hatası geri?
SQL Server 2005 aşağıdaki gibi: bazı SQL çalıştıran bir istemci uygulaması var
BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;
Uzun bir dizi komut tarafından gönderilir.
Ekler biri başarısız, ya da komut herhangi bir kısmı başarısız olursa, SQL Server geri hareket ediyor mu? Eğer geri gelirse, rulo için ikinci bir komut göndermek gerekiyor mu geri?
Kullanıyorum apı ve dili hakkında detayları verebilirim, ama SQL Server herhangi bir dil için aynı tepki vermesi gerektiğini düşünüyorum.
CEVAP
17 Kasım 2009, Salı
Tüm işlem geri alınır, bu doğru. Onu geri almak için komut vermek gerekir.
Aşağıdaki gibi TRY CATCH blok bu sarabilirsiniz
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN -- Transaction Success!
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN --RollBack in case of Error
-- you can Raise ERROR with RAISEERROR() Statement including the details of the exception
RAISERROR(ERROR_MESSAGE(), ERROR_SEVERITY(), 1)
END CATCH
Bunu PaylaÅŸ:

SQL Server veritabanı geri yükleme hat...
2008 Windows Server SQL Auth oturum Aç...
Giriş yapılamadı SQL Server kimlik Doğ...
SQL Server Veritabanı Yedekleme alt sü...
SQL Server Yedekleme sürecini belirlem...