none
Incrementar dados usando uma Trigger RRS feed

  • Pergunta

  • Pessoal bom dia!

    Preciso usar uma trigger para quando um novo usuário for inserido um campo chamado "Matricula" seja preenchido  automaticamente, com valores de "A00000" até "Z99999", que não devem se repetir e que aumentam de 1 em 1

    Alguém poderia me ajudar? Como eu faria inserir esses dados de acordo como está especificado acima?

    segunda-feira, 7 de outubro de 2013 14:15

Respostas

  • Thais,

    Se você estiver utilizando o SQL SERVER 2012, use o comando FORMAT junto com CONCAT para definir este modelo.

    Segue abaixo um exemplo:

    SELECT CONCAT('A', FORMAT(0123, '0000000'))

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
    MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"


    • Sugerido como Resposta Durval RamosModerator segunda-feira, 7 de outubro de 2013 16:59
    • Marcado como Resposta Giovani Cr segunda-feira, 14 de outubro de 2013 15:59
    segunda-feira, 7 de outubro de 2013 14:41
    Moderador
  • Thais boa tarde,

    Uma opção também é montar uma function que fique responsável por "gerenciar" essa incrementação, e criar uma coluna do tipo de dados e colocar com DEFAULT a FUNCTION(), você pode até ganhar em flexibilidade em algumas situações.

    Att.


    Guilherme Silva Cardoso Microsoft Student Partner

    • Marcado como Resposta Giovani Cr segunda-feira, 14 de outubro de 2013 15:59
    segunda-feira, 7 de outubro de 2013 16:08

Todas as Respostas

  • Thais,

    Como é feita a criação do usuário? Não é possível incluir o Insert na criação do usuário?

    segunda-feira, 7 de outubro de 2013 14:20
  • Não tenho acesso à esse código que é referente a criação do usuário.

    Foi solicitado que criasse uma trigger que, quando houvesse uma nova inserção de um novo usuário o campo "Matricula" fosse preenchido com a numeração que citei acima.

    segunda-feira, 7 de outubro de 2013 14:27
  • Thais

    Veja o exemplo:

    CREATE TRIGGER

    Nome_trigger

    ON

    Tabela_usuario

    AFTER INSERT

    AS

    INSERT INTO

    tabela

    Select matricula FROM tabela


    segunda-feira, 7 de outubro de 2013 14:37
  • Thais,

    Se você estiver utilizando o SQL SERVER 2012, use o comando FORMAT junto com CONCAT para definir este modelo.

    Segue abaixo um exemplo:

    SELECT CONCAT('A', FORMAT(0123, '0000000'))

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
    MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"


    • Sugerido como Resposta Durval RamosModerator segunda-feira, 7 de outubro de 2013 16:59
    • Marcado como Resposta Giovani Cr segunda-feira, 14 de outubro de 2013 15:59
    segunda-feira, 7 de outubro de 2013 14:41
    Moderador
  • Thais boa tarde,

    Uma opção também é montar uma function que fique responsável por "gerenciar" essa incrementação, e criar uma coluna do tipo de dados e colocar com DEFAULT a FUNCTION(), você pode até ganhar em flexibilidade em algumas situações.

    Att.


    Guilherme Silva Cardoso Microsoft Student Partner

    • Marcado como Resposta Giovani Cr segunda-feira, 14 de outubro de 2013 15:59
    segunda-feira, 7 de outubro de 2013 16:08