Caso precise fazer algum tipo de teste que seja necessário popular dados em uma tabela SQL Server, é possível executar o seguinte script para criar a tabela e já ‘inflar’ com os dados para testes. Os campos serão populados com datas aleatórias.
SQL da criação da tabela
CREATE TABLE dbo.TestTableSize ( MyKeyField VARCHAR(10) NOT NULL, MyDate1 DATETIME NOT NULL, MyDate2 DATETIME NOT NULL, MyDate3 DATETIME NOT NULL, MyDate4 DATETIME NOT NULL, MyDate5 DATETIME NOT NULL ) |
SQL para popular os dados na tabela recém criada
-- Declara os tipos de variáveis que iremos utilizar DECLARE @RowCount INT DECLARE @RowString VARCHAR(10) DECLARE @Random INT DECLARE @UPPER INT DECLARE @LOWER INT DECLARE @InsertDate DATETIME SET @LOWER = -730 --configura a data até 2 anos para trás(365*2) SET @UPPER = -1 --configura a data no máximo até 1 dia atrás SET @RowCount = 0 --configura a contagem de linhas -- while para popular os dados na tabela WHILE @RowCount < 3000000 BEGIN -- paranauê para calcular a data para inserção SET @RowString = CAST(@RowCount AS VARCHAR(10)) SELECT @Random = ROUND(((@UPPER - @LOWER -1) * RAND() + @LOWER), 0) SET @InsertDate = DATEADD(dd, @Random, GETDATE()) INSERT INTO TestTableSize (MyKeyField ,MyDate1 ,MyDate2 ,MyDate3 ,MyDate4 ,MyDate5) VALUES (REPLICATE('0', 10 - DATALENGTH(@RowString)) + @RowString , @InsertDate ,DATEADD(dd, 1, @InsertDate) ,DATEADD(dd, 2, @InsertDate) ,DATEADD(dd, 3, @InsertDate) ,DATEADD(dd, 4, @InsertDate)) SET @RowCount = @RowCount + 1 END |
Fiz um resumão do link que encontrei:
https://mitchelsellers.com/blog/article/creating-random-sql-server-test-data