none
Gerar massa de dados RRS feed

  • Pergunta

  • Boa noite a todos, gostaria de saber a sintaxe ou se existe em SQL server, algo similar ao oracle e ao postgree. Onde ao utilizar o comando generate_series(1, 1000), ele retonar uma massa de dados sequencial de 1 a 1000, podendo também inserir estes em uma determinada tabela. Portanto, existe em sql server algum comando para gerar valores automaticamente ?

    • Tipo Alterado Gustavo Maia Aguiar quinta-feira, 9 de fevereiro de 2012 01:02 É uma pergunta e não uma discussão
    quarta-feira, 8 de fevereiro de 2012 23:28

Respostas

  • Evertoum,

    Você pode gerar massa de diversas formas.. segue uma dica...

    CREATE TABLE MASSA(ID INT IDENTITY, NOME VARCHAR(50))
    GO
    INSERT INTO MASSA (NOME) VALUES ('TESTE')
    GO 50
    SELECT TOP 10 * FROM MASSA

    Neste caso criei uma tabela .. com um campo identity.. que vai gerar um sequencial..  e ao fazer o insert.. logo após o GO eu coloco quantas vezes eu quero que ele exeute...

    Espero que ajude!

    Abs.


    Ivan Candido MCITP SQL Server 2008 / 2005 http://ivancandido.wordpress.com/

    • Sugerido como Resposta Rodrigo Ataíde quinta-feira, 9 de fevereiro de 2012 14:13
    • Marcado como Resposta Eder Costa quarta-feira, 29 de fevereiro de 2012 14:46
    quinta-feira, 9 de fevereiro de 2012 13:47
  • Evertoum

    Segue outro exemplo:

    ;with cte (N) as 
    (
        select 1 
        union all 
        select N+1 from cte where N<1000
    )
    select N from cte OPTION(MaxRecursion 0)


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    • Sugerido como Resposta Eduardo Gomes Pereira quinta-feira, 9 de fevereiro de 2012 16:54
    • Marcado como Resposta Eder Costa quarta-feira, 29 de fevereiro de 2012 14:46
    quinta-feira, 9 de fevereiro de 2012 16:43
  • select N from cte order by newid() OPTION(MaxRecursion 0) 

    Inclua a clausula oder by newid()

    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Eder Costa quarta-feira, 29 de fevereiro de 2012 14:46
    sexta-feira, 10 de fevereiro de 2012 10:49

Todas as Respostas

  • Evertoum,

    Você pode gerar massa de diversas formas.. segue uma dica...

    CREATE TABLE MASSA(ID INT IDENTITY, NOME VARCHAR(50))
    GO
    INSERT INTO MASSA (NOME) VALUES ('TESTE')
    GO 50
    SELECT TOP 10 * FROM MASSA

    Neste caso criei uma tabela .. com um campo identity.. que vai gerar um sequencial..  e ao fazer o insert.. logo após o GO eu coloco quantas vezes eu quero que ele exeute...

    Espero que ajude!

    Abs.


    Ivan Candido MCITP SQL Server 2008 / 2005 http://ivancandido.wordpress.com/

    • Sugerido como Resposta Rodrigo Ataíde quinta-feira, 9 de fevereiro de 2012 14:13
    • Marcado como Resposta Eder Costa quarta-feira, 29 de fevereiro de 2012 14:46
    quinta-feira, 9 de fevereiro de 2012 13:47
  • Evertoum

    Segue outro exemplo:

    ;with cte (N) as 
    (
        select 1 
        union all 
        select N+1 from cte where N<1000
    )
    select N from cte OPTION(MaxRecursion 0)


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    • Sugerido como Resposta Eduardo Gomes Pereira quinta-feira, 9 de fevereiro de 2012 16:54
    • Marcado como Resposta Eder Costa quarta-feira, 29 de fevereiro de 2012 14:46
    quinta-feira, 9 de fevereiro de 2012 16:43
  • Bem legal esse comando Leonardo.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    quinta-feira, 9 de fevereiro de 2012 16:54
  • OFF


    "Bem legal esse comando Leonardo." [2]


    se é! CTE's recursivas é uma coisa muito legal, da pra fazer muitas coisas que sem isso não tem como, de forma bem simples


    todo mundo deveria estudar isso

    Segue uns links:

    Entendendo as Common Table Expressions – CTE – Parte 1
    http://zavaschi.com/index.php/2009/09/entendendo-as-common-table-expressions-cte-parte-1/
    (tem parte 2)

    Recursives Queries
    http://www.mssqltips.com/sqlservertip/1520/recursive-queries-using-common-table-expressions-cte-in-sql-server/

    Julio C.

    quinta-feira, 9 de fevereiro de 2012 20:25
  • Valeu as dicas pessoal. No postgresql ou no proprio oracle, tem como fazer essa massa de dados randomicamente, é possivel no sql server também ?
    • Editado Evertoum quinta-feira, 9 de fevereiro de 2012 23:15
    quinta-feira, 9 de fevereiro de 2012 22:17
  • select N from cte order by newid() OPTION(MaxRecursion 0) 

    Inclua a clausula oder by newid()

    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Eder Costa quarta-feira, 29 de fevereiro de 2012 14:46
    sexta-feira, 10 de fevereiro de 2012 10:49
  • Isso mesmo mano, muito obrigado.
    quarta-feira, 15 de fevereiro de 2012 11:05