SORU
14 NİSAN 2012, CUMARTESİ


SQL işlemleri doğru kullanın Server 2008

2 komutlar var ve her ikisi de düzgün idam ya da hiçbiri yürütmek gerekir. Bir Hareket lazım diye düşünüyorum ama bunu doğru kullanmak için nasıl bilmiyorum.

Aşağıdaki komut ile sorun nedir?

BEGIN TRANSACTION [Tran1]

INSERT INTO [Test].[dbo].[T1]
    ([Title], [AVG])
VALUES ('Tidd130', 130), ('Tidd230', 230)

UPDATE [Test].[dbo].[T1]
  SET [Title] = N'az2' ,[AVG] = 1
  WHERE [dbo].[T1].[Title] = N'az'

COMMIT TRANSACTION [Tran1]
GO

insert komut yürütüldü ama update komutu bir sorun vardır. Nasıl eğer onlara herhangi bir yürütme bir hata varsa geri almak için bu komutları uygulayabilir miyim?

CEVAP
14 NİSAN 2012, CUMARTESİ


Eğer işlem işlem işlem geri alınır başarısız olursa değişiklikler olacak başarılı olursa, bir try/catch bloğu ekleyin:

BEGIN TRANSACTION [Tran1]

BEGIN TRY

INSERT INTO [Test].[dbo].[T1]
  ([Title], [AVG])
VALUES ('Tidd130', 130), ('Tidd230', 230)

UPDATE [Test].[dbo].[T1]
  SET [Title] = N'az2' ,[AVG] = 1
WHERE [dbo].[T1].[Title] = N'az'


COMMIT TRANSACTION [Tran1]

END TRY
BEGIN CATCH
  ROLLBACK TRANSACTION [Tran1]
END CATCH  

GO

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ampisound

    Ampisound

    12 Kasım 2006
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006
  • the one am radio

    the one am r

    6 Mayıs 2006