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

  • failblog

    failblog

    17 HAZİRAN 2008
  • Palmundo Ec

    Palmundo Ec

    11 HAZİRAN 2009
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011