none
Trigger para criar número de orçamento RRS feed

  • Pergunta

  • Bom dia a todos!

    Preciso fazer uma Trigger que grave em um campo chamado "orcamento" de uma tabela, um valor composto pelo ano + mês + id mas após 8 anos longe de desenvolvimento, está complicado, alguém poderia me dar uma ajuda ou direcionamento por favor?

    quarta-feira, 22 de março de 2017 12:28

Respostas

  • Flávio,

    É bem simples, siga o exemplo abaixo:

    CREATE TRIGGER [dbo].Trigger_name 
    ON [dbo].Table_name
    AFTER INSERT 
    AS
    
    SET NOCOUNT ON;
    
    DECLARE	@id INT
    
    SELECT
    @id = id
    FROM inserted i
    INNER JOIN Orcamentos ORC ON ORC.ID = i.ID
    
    UPDATE Orcamentos
    SET Referencia  = CAST(YEAR(GETDATE()) AS CHAR(4)) + CAST(MONTH(GETDATE()) AS CHAR(2)) + CAST(ID AS CHAR(6))
    WHERE 
    id = @id
    

    Espero ter ajudado.

    Abraço.

    quinta-feira, 23 de março de 2017 15:14

Todas as Respostas

  • Boa tarde Flavio,

    Vamos tentar entender melhor sua necessidade...

    Esta alteração deve ser um processo que executa após a alteração de algum registro? Após inserção?

    Nos exemplifique com um caso prático, colunas da tabela, etc.

    Abraço.

    quarta-feira, 22 de março de 2017 19:22
  • Boa noite Elton!

    Seguinte: tenho uma tabela chamada orcamentos com vários campos, sendo dois deles chamados <id> que é um auto incremental e um outro chamado <referencia>.

    Preciso que ao ser inserido um novo registro nessa tabela, uma trigger seja disparada para gravar no campo <referencia> um valor composto pelo ano + mes + id.

    Exemplo: efetuou-se um insert e o campo <id> tem valor 123 a trigger grava no campo <referencia> o valor 201703123.

    quarta-feira, 22 de março de 2017 22:02
  • Flávio,

    É bem simples, siga o exemplo abaixo:

    CREATE TRIGGER [dbo].Trigger_name 
    ON [dbo].Table_name
    AFTER INSERT 
    AS
    
    SET NOCOUNT ON;
    
    DECLARE	@id INT
    
    SELECT
    @id = id
    FROM inserted i
    INNER JOIN Orcamentos ORC ON ORC.ID = i.ID
    
    UPDATE Orcamentos
    SET Referencia  = CAST(YEAR(GETDATE()) AS CHAR(4)) + CAST(MONTH(GETDATE()) AS CHAR(2)) + CAST(ID AS CHAR(6))
    WHERE 
    id = @id
    

    Espero ter ajudado.

    Abraço.

    quinta-feira, 23 de março de 2017 15:14