2011-02-25 17 views
11

Bunu test edemiyorum ve çözümü şu anda kendim alıyorum ve MSDN veya google'daki bilgileri bulamadım.Bir işlemde tek bir birleştirme deyimini (ekleme, silme ve güncelleştirme ile) kapsüllemek için gerekli midir?

Verilen bir tablodaki kayıtları ekleyen, silen ve güncelleştiren bir birleştirme ifadesinin bir işlemde kapsüle edilmesinin gerekip gerekmediği (eğer ekler yapıldıktan sonra bir hata oluştuğunda, örneğin, güncellemeler) veya Operasyonların tamamı başarısız olursa, bütün birleşme de başarısız olur.

Bir işlem dahil edersek zarar vermezdi, ama merak uğruna, birleştirme içselleri hakkında daha fazla bilgi edinmek istiyoruz.

cevap

20

SQL Server'daki herhangi bir deyim, kendi başına bir işlemdir. olduğu

, bu atomik geçerli: her şey başarılı ya da her şey veren açık işlem büyük bir atomik işlem haline grup birden çok tek atom tablolar için kullanılacak

başarısız olur.

Bu, MERGE'nin güzelliği: açık bir işleme ve 3 ayrı ifadeye gerek yoktur.

2

SQL Server'daki tüm DML deyimleri, bir açık başlatılmamışsa örtülü bir işlemde çalıştırılır. Tabii ki kendi açık işleminizde de sarmanıza rağmen gerekli olmamalıdır.

0

Her sorgu, her zaman bir işlemde çalışır. Bir işlem oluşturmazsanız, sorgunun kendisi kendi işlemine sahiptir. Bir şey ters giderse, tüm sorgu geri alınır.

Daha fazla hata işlemek istiyorsanız, bunun etrafında işlem yapmak isteyebilirsiniz, ancak veritabanının tutarlılığı için gerekli değildir.

İlgili konular