Intereting Posts
Что такое SQL-оператор (Oracle) для изменения столбца в DATE с помощью SYSDATE по умолчанию? Какие бесплатные инструменты форматирования SQL существуют? Использование ORM или простого SQL? Как решить вопрос о единой кавычки в значении фильтра с помощью DataTable.Select () Как получить RANDOM-записи из каждой категории в MySQL? Fastest Way объединяет две базы данных SQLITE Выполнение SQL-скрипта в oracle db по одной инструкции за раз Java PreparedStatement и ON DUPLICATE KEY UPDATE: как узнать, была ли вставлена ​​или обновлена ​​строка? Как получить числовой случайный уникальный в SQL Server Может ли SQLite обрабатывать 90 миллионов записей? Есть ли более дешевый способ тестирования нагрузки, чем обновление до Visual Studio 2010 Ultimate Объединить результаты SQL-запроса в Oracle Обозначение префикса Postgresql для полного текста Код Powershell для получения списка файлов Oracle: Мне нужно «частичное» внешнее соединение. Посмотрите на изображение

TSQL Pseudo Генератор случайных текстов

Я выполняю некоторые тесты производительности на SQL sproc и просто хочу выпустить быстрый генератор данных для тестирования.

Я делаю простой способ генерировать псевдослучайное (истинное случайное, не необходимое в данном случае) поле varchar.

Идеи, которые я имею до сих пор, имеют определение символов действительных символов, которые можно использовать, а затем строят строку из этого определения и используют псевдослучайную длину для изменения длины с заданной длиной max / min.

Редактировать:

Мой генератор тестовых данных:

DECLARE @MyDataTable TABLE ( RecID int IDENTITY(1,1) PRIMARY KEY, SomeText varchar(255) ) DECLARE @RecId int, @SomeText varchar(255), @maxlength int, @minlength int, @RecordCount int, @Counter int SET @maxlength = 254 SET @minlength = 50 SET @RecordCount = 500000 SET @Counter = 1 WHILE (@Counter < @RecordCount) BEGIN INSERT INTO @MyDataTable ( SomeText ) SELECT TOP 1 ( select top (abs(checksum(newid())) % (@maxlength-@minlength) + @minlength) char(abs(checksum(newid())) % 26 + ascii('A')) from sys.all_objects a1 where sign(a1.object_id) = sign(t.object_id) /* Meaningless thing to force correlation */ for xml path('') ) as NewRandomString FROM sys.all_objects t; SET @Counter = @Counter + 1 END 

Я недавно написал сообщение в блоге.

http://msmvps.com/blogs/robfarley/archive/2009/12/07/randomising-data.aspx

 select top (@stringlength) char(abs(checksum(newid())) % 26 + ascii('A')) from sys.all_objects for xml path('') ; 

Изменить: Извините – не включили случайную длину …

 SELECT ( select top (abs(checksum(newid())) % (@maxlength-@minlength) + @minlength) char(abs(checksum(newid())) % 26 + ascii('A')) from sys.all_objects for xml path('') ) as NewRandomString FROM yourTable; /* Maybe something like dbo.nums? */ 

Изменить: Извините – нужно скоррелировать …

 SELECT ( select top (abs(checksum(newid())) % (@maxlength-@minlength) + @minlength) char(abs(checksum(newid())) % 26 + ascii('A')) from sys.all_objects a1 where sign(a1.object_id) = sign(t.object_id) /* Meaningless thing to force correlation */ for xml path('') ) as NewRandomString ,* FROM sys.all_objects t; 

Для SQL Server 2008

 SELECT --fixed length CAST(CRYPT_GEN_RANDOM(50) AS varchar(100)), --variable length CAST(CRYPT_GEN_RANDOM(ABS(CHECKSUM(NEWID()))%50) AS varchar(100)) 

Образцы:

 r¡Ñ”ã8Ò¯wß×1W=ýÎÜTÜN:Læ*é=Öô/qAtmտ׌1):¢ìèð'¾N mÁBòºÇòWãmßyWßðÛ2ﬔœ¹t ¦2›ÏÀë?î7Ä›››ºªb 

Мой злой двойник хочет использовать это как генератор паролей …

Это создаст случайную строку переменной длины.

 DECLARE @text nvarchar(255), @length int, @i int; SET @i = 0 SET @text = '' SET @length = RAND() * 50 + 215 WHILE (@i < @length) BEGIN SET @text = @text + CHAR(RAND() * 26 + 65) SET @i = @i + 1 END 

Если вам это нужно быстро или вы не хотите делать это самостоятельно, вы также можете использовать этот инструмент из

http://www.generatedata.com/

но вы можете генерировать только 100 строк, если вы просто используете онлайн-демонстрацию.