Ir para o conteúdo
Hipnoted

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

Mensagens Recomendadas

Hipnoted    6
Hipnoted

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

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. :/

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade