Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

opensid3

Trigger Instead of update

Mensagens Recomendadas

opensid3

Boa tarde.

Desde já, o meu obrigado pelas respostas.

Tenho bastante experiencia em SQL e trabalho com Sybase, mas neste momento estou a migrar uns projectos para MS SQL 2012.

Em sybase, tenho um trigger que me impede de alterar um campo, em diversas situações (seja, px, a alteração do contribuinte de um cliente, caso haja documentos emitidos a esse cliente).

Com este exmplo, posso criar 2 tabelas (são só exemplos simplistas e funciona em MSSQL e em Sybase):

Create table cl (codigo int, nif varchar(9));
Create table doc (numero int, codigo_cli int);

Para o trigger, em sybase, bastava-me fazer:

Cretate trigger "Altera_nif" before update of nif
order 1 on cl
referencing old as Velho new as Novo
for each row
begin
declare @Existe char(1);
set @Existe='N';
if exists(select nif from doc where nif= Velho.nif and codigo_cli= velho.codigo) then
set @ExisteDoc='S'
end if;
if @ExisteDoc = 'S' then
raiserror 'Não podes alterar esse! '
end if
end

Como passo isto para mssql?

Editado por opensid3

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.