CRIAR NUMERAÇÃO AUTOMÁTICA SEM SER NA PK SQLSERVER

 Tópico anterior Próximo tópico Novo tópico

CRIAR NUMERAÇÃO AUTOMÁTICA SEM SER NA PK SQLSERVER

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#489828 - 07/08/2019 09:25:06

MARCOPINHEIRO
TAUBATE
Cadast. em:Agosto/2019


Última edição em 07/08/2019 09:34:31 por MARCOPINHEIRO

Bom dia a todos, tudo bem?

Sou estudante da área de programação e estou vendo agora banco de dados SQL Server.
E em um projeto que será acessado simultaneamente há a necessidade de criação de uma
numeração automática. Explico:

Tenho duas tabelas, uma tbl_carros e outra tbl_opcionais, uma será o cabeçalho e a outra os detalhes respectivamente.
Na tbl_carros, posso ter vários veículos: Carro A, Carro B, Carro C.

Cada carro pode ter vários opcionais (que serão ou não validados) então estabelecemos uma relação de um (tbl_carros) para muitos (tbl_opcionais).
Tudo bem até aqui.

Onde estou com dificuldade:
Criar uma trigger que numere o opcional de cada carro somente após o campo opcional_validados da tabela tbl_opcionais for alterado para o valor 1 (o valor padrão é 0) . A numeração terá que ser sequencial. Por exemplo:
Na tabela tbl_opcionais tenho os campos: carro_pk (chave da tabela tbl_carros), descricao, numero_opcional, opcicional_validado.
Se o Carro A tem três opcionais e dois opcionais validados, Carro B tem 2 opcionais e todos validados e o Carro C tem 4 opcionais com apenas 3 validados, a tabela tbl_opcionais deveria ficar assim:

carro_pk    | descricao    | numero_opcional | opcional_validado
Carro A     | Direção Hid | 1                           | 1
Carro A     | Freios ABS  |                             | 0
Carro A     | Teto Solar    | 2                          | 1
Carro B     | Vidro Elet.    | 1                          | 1
Carro B     | Retrovisor E.| 2                          | 1
Carro C    | Teto Solar     | 1                           |1
Carro C    | Central Mul. |                               |0
Carro C    | Direção Hid. | 2                           |1
Carro C    | Freios ABS  | 3                            |1

O campo número numero_opcional, deverá ter o número sequencial do opcional do veiculo
após o campo opcional_validado ser alterado para 1.
Mas isso precisa estar gravado na tabela e duas pessoas ao mesmo tempo poderão incluir um
opcional para o mesmo veiculo e validar. Tenho que garantir que a sequencia dos opcionais do veiculo
não se repitam.

Já tentei umas triggers mas sem sucesso.
Poderiam me dar uma força?

Desde já grato.


Marco Pinheiro
Aprendiz do que me ensinarem

#489831 - 07/08/2019 10:39:37

OMAR2007
MONTES CLAROS
Cadast. em:Maio/2019


Você tem um bote? Se não, então compre um.
Com o tempo mudará seu conceito.



Resposta escolhida #489832 - 07/08/2019 10:40:58

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
#489833 - 07/08/2019 10:59:39

MARCOPINHEIRO
TAUBATE
Cadast. em:Agosto/2019


Citação:
  Você tem um bote? Se não, então compre um.
Com o tempo mudará seu conceito.  

Sem ironia: juro que não entendi... E no meu tópico não há conceito algum, pois o que pedi é exigência de um exercício...

Citação:
  https://docs.microsoft.com/pt-br/sql/t-sql/statements/create-sequence-transact-sql?view=sql-server-2017  

Obriga, vou estudar isso.

Marco Pinheiro
Aprendiz do que me ensinarem

#489836 - 07/08/2019 11:26:37

OMAR2007
MONTES CLAROS
Cadast. em:Maio/2019


Auto numeração.Vai da pau.Eu já fiz isto.
Melhor entender.Estruturar melhor as tabelas.
Ironia vai ser a peça que vai aplicar com seu código.




#489838 - 07/08/2019 11:29:45

MARCOPINHEIRO
TAUBATE
Cadast. em:Agosto/2019


Citação:
  CREATE SEQUENCE

https://docs.microsoft.com/pt-br/sql/t-sql/statements/create-sequence-transact-sql?view=sql-server-2017  


Nossa, isso realmente é tudo o que precisamos. Obrigado.

Marco Pinheiro
Aprendiz do que me ensinarem

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MARCOPINHEIRO em 07/08/2019 11:30:10