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

  • michellefeng's channel

    michellefeng

    26 Kasım 2006
  • Pocketnow

    Pocketnow

    14 EKİM 2007
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006