USE [datataker] GO /****** Object: Trigger [dbo].[Tr_BlokData_Ins] Script Date: 05/12/2014 07:10:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ====================================================================================== -- Author: M. Jordaan -- Create date: 14 april 2014 -- Description: Log blokinfo record naar SQL-server-1 en 2 -- ====================================================================================== CREATE TRIGGER [dbo].[Tr_BlokData_Ins] ON [dbo].[BlokData] INSTEAD OF INSERT AS BEGIN -- Indien geen records, voer dan ook geen updates uit IF @@ROWCOUNT < 1 RETURN; -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; --error handling in try/catch block BEGIN TRY --add record to sql-server-1 BEGIN TRANSACTION -- copieer de waarden naar database pers2, tabel [blokinfo], server SQL-server-1 --INSERT INTO [DATATAKER-5\MASSAEXPRESS].[PERS2].[dbo].[blokinfo] INSERT INTO [WS-3].[PERS2].[dbo].[blokinfo] ([pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller]) SELECT [pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller] FROM Inserted; --insert is niet gelukt, voer een foutafhandeling uit IF @@ERROR <> 0 RAISERROR (55000,-1,-1, 'Tr_BlokData_Ins') --insert is gelukt beeindig huidige actie en beeindig procedure COMMIT TRANSACTION END TRY BEGIN CATCH --Error handling ROLLBACK TRANSACTION -- Indien er geen records in SQL-server-1 gelogd zijn, sla deze lokaal in tabel blokinfo_1 op INSERT INTO [DATATAKER].[dbo].[blokinfo_1] ([pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller]) SELECT [pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller] FROM Inserted END CATCH /* BEGIN TRY --add record to sql-server-2 BEGIN TRANSACTION -- copieer de waarden naar database pers2, tabel [blokinfo], server SQL-server-2 --INSERT INTO [DATATAKER-5\MASSAEXPRESS].[PERS2].[dbo].[blokinfo] INSERT INTO [WS-3].[PERS2].[dbo].[blokinfo] ([pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller]) SELECT [pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller] FROM Inserted; --insert is niet gelukt, voer een foutafhandeling uit IF @@ERROR <> 0 RAISERROR (55000,-1,-1, 'Tr_BlokData_Ins') --insert is gelukt beeindig huidige actie en beeindig procedure COMMIT TRANSACTION END TRY BEGIN CATCH --Error handling ROLLBACK TRANSACTION -- Indien er geen records in SQL-server-1 gelogd zijn, sla deze lokaal in tabel blokinfo_1 op INSERT INTO [DATATAKER].[dbo].[blokinfo] ([pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller]) SELECT [pers], [datum_tijd], [hoogte], [gewicht], [temp], [anodeteller] FROM Inserted END CATCH */ END --End trigger