Jump to content
fabio_coimbra

Triggers

Recommended Posts

fabio_coimbra

Boas tardes!

Preciso da vossa ajuda sobre os triggers!

Eu quero criar um trigger de insert mas não sei como.

Gostava de saber como implemetar no sql server.

Por exemplo:

Tenho a base de dados Backup e com as seguintes tabelas: Equipamento, backup, planeamento_backup,... Imaginando que a tabela "Equipamento" só tem um registo(Cod_maquina =1). Se o utilizador inserir um novo registo com os mesmos dados, o trigger devia indicar ao utilizador que o registo com os mesmos dados já existe e que não podia ser.

Preciso de ajuda nos triggers para as instruções DML porque já ando 3 dias a tentar os triggers e não consigo.  :wallbash:

CREATE TRIGGER actualizar_equipamento ON Equipamento

FOR INSERT

AS

DECLARE @Uni int

SELECT @Uni = U.Cod_maquina

FROM Equipamento U, inserted I

WHERE U.Cod_unidade = I.Cod_unidade

UPDATE Ter

WHERE IDUnidade = @Uni

UPDATE Produzir

WHERE IDUnidade = @Uni

Cumprimentos,

Fábio Coimbra

Share this post


Link to post
Share on other sites
Rechousa

Olá,

Vejo três maneiras de resolveres o teu problema:

- 1) Chave primária ou UNIQUE - Dado que não queres registos com os mesmos dados porque não os colocas com uma chave primária ou UNIQUE constraint?;

- 2) StoredProcedure para Gravar - Usas uma StoredProcedure para gravar (inserir / actualizar) os dados em que validas se existem repetidos ou não;

- 3) Trigger e muito bem! - Reparei que o teu Trigger é apenas para Inserir e está um bocado confuso... O que é que queres fazer mesmo? Tens lá UPDATE 's sem SET? Isto não faz sentido.


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.