CRIAR NUMERAO AUTOMTICA SEM SER NA PK SQLSERVER

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

CRIAR NUMERAO AUTOMTICA 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 programao e estou vendo agora banco de dados SQL Server.
E em um projeto que ser acessado simultaneamente h a necessidade de criao de uma
numerao automtica. Explico:

Tenho duas tabelas, uma tbl_carros e outra tbl_opcionais, uma ser o cabealho e a outra os detalhes respectivamente.
Na tbl_carros, posso ter vrios veculos: Carro A, Carro B, Carro C.

Cada carro pode ter vrios opcionais (que sero ou no validados) ento estabelecemos uma relao 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 aps o campo opcional_validados da tabela tbl_opcionais for alterado para o valor 1 (o valor padro 0) . A numerao 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 trs 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     | Direo 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    | Direo Hid. | 2                           |1
Carro C    | Freios ABS  | 3                            |1

O campo nmero numero_opcional, dever ter o nmero sequencial do opcional do veiculo
aps o campo opcional_validado ser alterado para 1.
Mas isso precisa estar gravado na tabela e duas pessoas ao mesmo tempo podero incluir um
opcional para o mesmo veiculo e validar. Tenho que garantir que a sequencia dos opcionais do veiculo
no se repitam.

J tentei umas triggers mas sem sucesso.
Poderiam me dar uma fora?

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 no, ento 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 no, ento compre um.
Com o tempo mudar seu conceito.  

Sem ironia: juro que no entendi... E no meu tpico no h conceito algum, pois o que pedi exigncia de um exerccio...

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 numerao.Vai da pau.Eu j fiz isto.
Melhor entender.Estruturar melhor as tabelas.
Ironia vai ser a pea que vai aplicar com seu cdigo.




#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