sexta-feira, 18 de dezembro de 2009

Os Triggers no MSSQL são muito úteis, mas temos de ter algumas precauções no seu uso, porque  ao usarmos  "nested triggers" o SQL Server só nos permite correr até 32 de uma só vez (execmplo um trigger dispara com um insert numa tabela que depois dispara outro trigger para outra tabela e assim sucessivamente até 32).

Podem ser usados para:

  • Inserir (Insert), actualizar (Update), Apagar (Delete)
Se usar a sintaxe AFTER, ou seja depois de uma acção e também podemos usar a sintaxe FOR

Exemplo usando FOR e deleted :

CREATE TRIGGER Save_Deleted_records
 ON dbo.Table_Test
 FOR DELETE
 AS
 INSERT deleted_records_mark
SELECT * FROM deleted





Exemplo usando AFTER

Create TRIGGER dbo.UpdateTrigger ON dbo.Table3 
AFTER INSERT AS 
 BEGIN 
   SET NOCOUNT ON; 
     declare @ticket  as varchar(8) 
     set @ticket = (select callid from inserted)
     update subset set uticketrem = @ticket where custtype<>'Facility' and callid=@ticket
END
  • Instead of Insert, Update, Delete 
Isto quer dizer que poderá uma outra acção se for um insert poderá não fazer nada ou efectuar outra acção.


CREATE TRIGGER Example_Trigger on Table1
INSTEAD OF INSERT
AS
BEGIN
  -- Instead of inserting you can do other operations
  INSERT INTO Table45
       SELECT RowMatCol, Date_Doc
       FROM inserted
END











Bom Natal e Boas Entradas em 2010
Particionado por  IT Tech BuZ






3 comentários:

hitech disse...

Hi, I like your blog. Please visit my blog too. Thanks

Cormel disse...

Very informative...good job

Anónimo disse...

Boa tarde. Farei curso de SQL na Impacta e estou super ansiosa.. Quem quiser, vale muito a pena!

Curso Impacta- Treinamento SQL

Enviar um comentário