• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Hipnoted

[SQL Server 2005] Trigger que não dá no meu PC mas dá em outros

11 mensagens neste tópico

Então é assim, tenho duas tabelas (Clientes e Animais) e criei um trigger que não me deixasse que um cliente tenha mais do que 3 animais. Inseri dados e testei e dava na boa.

Depois alterei-o de forma a que agora os clientes possam ter no máximo 2 animais. Tive de fazer de forma a que esta restrição não afectasse a quem já tinha 3 animais. O problema é que este trigger dava nos PCs da escola e no meu não.

Uso o XP SP2 Português (os da escola são em inglês) e o trigger é o seguinte:

ALTER TRIGGER [abc]
   ON [dbo].[Animal]
   AFTER INSERT, UPDATE

AS  

IF (EXISTS (SELECT a.codcli 
		FROM Animal a, inserted i
		WHERE a.codcli=i.codcli
		GROUP BY a.codcli
		HAVING COUNT(*) > 2))
BEGIN
RAISERROR ('O cliente ja tem dois animais! Não pode ter mais!',16,1)
ROLLBACK TRANSACTION
END

Alguém sabe do que poderá ser ou já lhe aconteceu o mesmo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E a base de dados é igual ? Não terás alguma diferente entre a BD do teu PC e a da escola ? É que é estranho e não me parece que seja da linguagem do OS.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E a base de dados é igual ? Não terás alguma diferente entre a BD do teu PC e a da escola ? É que é estranho e não me parece que seja da linguagem do OS.

Sim é igual. Aliás eu estava a fazer no meu portátil e depois é que fiz backup da BD para testar nos PCs da escola e deu na boa. :/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas as versões do Sql server é a 2005 em ambos correcto ? Dá-te algum erro ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas as versões do Sql server é a 2005 em ambos correcto ? Dá-te algum erro ?

Sim são as mesmas versões. A versão do Sql Server que instalei é a mesma dos PCs da escola, o que muda é que na escola tenho que meter a passe para conectar-se À BD e no meu PC não.

Erro não dá nenhum.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hum...realmente é estranho. Mas deixa-me lá perceber ... o trigger chega a ser disparado ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu faço executar trigger e ele não dá erro nenhum. Depois insiro valores na tabela e ele supostamente devi dar um aviso se inserisse mais que 2 animais para um cliente.

A anterior restrição que não deixava inserir mais que três animais para cada cliente dava na boa. A partir do momento que passei a utilizar a tabela inserted, de forma a que os clientes que tivessem mais de três animais não fossem afectados pela nova restrição, é que passou a não dar aviso nenhum.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que endereço é esse ? :s Aparece tudo codificado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já experimentaste apagar o trigger e criá-lo de novo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que endereço é esse ? :s Aparece tudo codificado...

É um ficheiro com o backup da BD. Estranho, ou consigo fazer download na boa... Já experimentaste com firefox?

já experimentaste apagar o trigger e criá-lo de novo?

Sim já. :P já reiniciei os serviços, cheguei a reiniciar o PC... Como estais a ver não sei mesmo de que é o que aumenta a minha frustração. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora