Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Borba

[Resolvido] FireBird Para SQL Server 2005 Express

Recommended Posts

Galera mais uma vez estou aki http://forum.imasters.com.br/public/style_emoticons/default/blush.gif mais minha duvida pode ser de outros.

 

bem vamos ao q interessa, iriei colocar aki o codigo de uma TRIGGER em Firebird

CREATE TRIGGER MENUS_BU0 FOR MENUS
active before UPDATE position 0
AS
begin
  IF (old.MEN_ANTERIOR_FK <> new.MEN_ANTERIOR_FK) then
  begin
    SELECT
      max(MEN_SEQ) + 1
    FROM
      MENUS
    WHERE
      coalesce(MEN_ANTERIOR_FK,'') = coalesce(new.MEN_ANTERIOR_FK, '')
    INTO
      new.MEN_SEQ;

    IF (new.MEN_SEQ IS NULL) then
      new.MEN_SEQ = 1;
  end
end

 

Existem duas gracinhas chamadas NEW e OLD

NEW = Novo valor antes de INSERIR OU ALTERAR

OLD = Valor anterior ao NEW.

 

vi que no SQL Server existe mais nao sei como usar entao Brother DAW e outros camaradas do forum desenrrola mais essa guerra.

flw e um grande abraço a vcs e a todos um BOM DIA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Bruno.

 

Seguinte,

as triggers no SQL Server não usam este conceito de old e new, elas trabalham com duas tabelas já predefinidas e alimentadas com os dados daquela transação.

 

Elas se chamam:

- Inserted

- Deleted

 

Você trabalha sua trigger de 3 formas:

- Quando existirem dados nessas duas tabelas, trata-se de um registro de alteração (update).

- Quando existirem dados somente na Inserted, trata-se de uma inserção (Insert)

- E, por fim, quando existirem dados somente na Deleted, trata-se de uma exclusão (Delete).

 

Sendo assim, para pegar os dados contidos nesta tabela, ao invés de você usar somente old.campo e new.campo você irá fazer JOINs com essas tabelas (definindo apelidos para elas) e aí sim pegar os dados.

 

Por fim, outra coisa que eu vi que vai mudar e no cabeçalho da sua trigger.

Ficando assim:

CREATE TRIGGER MENUS_BU0 ON MENUS
FOR UPDATE

AS
...

 

Acho que essas informações vão te ajudar bastante, o caminho deve clarear um pouco.

Tente re-fazer esta sua trigger agora que tenho certeza que vai funcionar.

 

Qualquer coisa é só falar.

 

[]tz ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Draw, Meu Brother digamos q foi 80% esclarecido.Mesmo assim clareou muito antes tava tao escuro q num poço de piche comparado a bronca era branco :Dessas tabelas Inserted e Deleted recebem todos os campos da que estou utilizando na hr do disparo do gatilho ?ai fariamos o Joins para pegar os valores Antidos na DELETED e os Novos na INSERTED ?val Draw mais uma vez pela atencao :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente isso!

 

Em tempos, não é DRAW e sim DAW... :)

 

[]tz ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza! Que bom...

 

Você mesmo pode pôr, a opção está no rodapé do tópico.

Estarei pondo.

 

[]tz ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.