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

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • Fraser Raft

    Fraser Raft

    9 Mart 2010
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007