Usuário com melhor resposta
Gerar massa de dados

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
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
-
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
-
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
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
-
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
-
-
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
Recursives Queries
http://zavaschi.com/index.php/2009/09/entendendo-as-common-table-expressions-cte-parte-1/
(tem parte 2)
http://www.mssqltips.com/sqlservertip/1520/recursive-queries-using-common-table-expressions-cte-in-sql-server/Julio C.
-
-
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
-