Pular para o conteúdo
Visualizando 12 posts - 1 até 12 (de 12 do total)
  • Autor
    Posts
  • #96257
    Evloki
    Participante

      Boa tarde,
      Para variar mais um problemas por aqui 8)

      Preciso fazer o seguinte esquema….

      Tenho uma identity em uma tabela que está no 50 e preciso fazer que o próximo registro inserido seja o 150 e não o 51 ou seja aumentar o identity em 99 sem inserir nenhum novo registro.
      Alguem tem idéia de como fazer isso?
      Obrigado.

      #96258
      Avatar photoLeonardo Litz
      Participante

        Como você gera os valores para a chave primaria?

        #96260
        vieri
        Participante

          Drop e recria com inicio em 150…

          #96261
          Evloki
          Participante

            Através de uma trigger.

            Não posso dropar… =/

            #96263
            burga
            Participante

              declare
              novo_valor NUMBER(10);
              valor_atual NUMBER(10);
              begin
              novo_valor = 150;
              select sequencia.nextval into valor_atual from dual;
              loop
              exit when valor_atual = novo_valor - 1;
              select sequencia.nextval into valor_atual from dual;
              end loop;
              end;
              /

              ou, se puder alterar a sequence…

              ALTER SEQUENCE sequencia INCREMENT BY 99;
              select sequencia.nextval into valor_atual from dual;
              ALTER SEQUENCE sequencia INCREMENT BY 1;

              #96265
              vieri
              Participante

                identity apesa de fugir do escopo do site é um objeto
                similar a sequence mas é do sqlserver..

                até aonde eu sei no mssql vc não tem alter de identity….

                #96266
                burga
                Participante

                  Eu assumi que você quis dizer sequence ao invés de identity, o código que eu postei é pro Oracle…

                  #96267
                  vieri
                  Participante

                    Sua resposta está correta…

                    o objetivo do meu post foi demosntrar que a sequence é mais flexivel que o identity! 😆 Eu não quis dizer nada, o nosso amigo com dúvidas é que postou dúvida de SQL SERVER, como aqui a maioria quase absoluta são especialista Oracle, eu alertei o fato e alertei que não da para fazer esse tip de alteração que fazemos nas sequences num identity que é mais engessado.

                    abços

                    #96269
                    fsitja
                    Participante

                      A propósito, dropar a sequence incorre em certos problemas pois é necessário atribuir novamente todos os grants anteriormente existentes nela. O melhor é rodar um PL/SQL script com os nextval em loop mesmo, conforme o Burga postou acima.

                      #96271
                      burga
                      Participante

                        Ah sim Vieri, minha resposta foi pro Evloki… Eu lendo ela agora pareceu ser uma resposta meio ríspida, mas não foi essa a intenção!!! 😳

                        E eu entendi a sua colocação sobre o mssql, só quis esclarecer que o código que postei foi pro Oracle e não pro SQL Server. Aliás, meu conhecimento de SQL Server ainda é bem limitado… 😆

                        E aí Francisco, andou sumido heim!!! Que bom que voltou…

                        #96276
                        Evloki
                        Participante

                          Valeu pessoal!
                          Segunda vou testar e posto aqui!
                          Obrigado 😀

                          #96286
                          fsitja
                          Participante

                            [quote=”burga”:1rza2y3m]Ah sim Vieri, minha resposta foi pro Evloki… Eu lendo ela agora pareceu ser uma resposta meio ríspida, mas não foi essa a intenção!!! 😳

                            E eu entendi a sua colocação sobre o mssql, só quis esclarecer que o código que postei foi pro Oracle e não pro SQL Server. Aliás, meu conhecimento de SQL Server ainda é bem limitado… 😆

                            E aí Francisco, andou sumido heim!!! Que bom que voltou…[/quote]

                            Pois é! Estava sumido mesmo, mas agora estou voltando devagar. Ainda sem meu Oracle instalado em casa, mas vou conferindo a contribuição do pessoal quando dá um tempinho.

                          Visualizando 12 posts - 1 até 12 (de 12 do total)
                          • Você deve fazer login para responder a este tópico.