Создайте данные тестирования в SQL Server

Мы использовали.Net, Открывают проект Id и довольно довольны им до сих пор. Andrew Arnott делает большую работу ответа на запросы и предложения обходных решений, если Вы поражены. Дайте ему попытку, и Вы будете любить его:)

9
задан Keith Bloom 13 July 2009 в 11:33
поделиться

3 ответа

Ну, я подумал, что вытащу палец и напишу себе легкий генератор данных:

declare @select varchar(max), @insert varchar(max), @column varchar(100),
    @type varchar(100), @identity bit, @db nvarchar(100)

set @db = N'Orders'
set @select = 'select '
set @insert = 'insert into ' + @db + ' ('


declare crD cursor fast_forward for
select column_name, data_type, 
COLUMNPROPERTY(
    OBJECT_ID(
       TABLE_SCHEMA + '.' + TABLE_NAME), 
    COLUMN_NAME, 'IsIdentity') AS COLUMN_ID
from Northwind.INFORMATION_SCHEMA.COLUMNS
where table_name = @db


open crD
fetch crD into @column, @type, @identity

while @@fetch_status = 0
begin
if @identity = 0 or @identity is null
begin
    set @insert = @insert + @column + ', ' 
    set @select = @select  + 
        case @type
            when 'int' then '1'
            when 'varchar' then '''test'''
            when 'nvarchar' then '''test'''
            when 'smalldatetime' then 'getdate()'
            when 'bit' then '0'
            else 'NULL'
        end + ', ' 
end
fetch crD into @column, @type, @identity
end 

set @select = left(@select, len(@select) - 1)
set @insert = left(@insert, len(@insert) - 1) + ')'
exec(@insert + @select)

close crD
deallocate crD

Для любой таблицы сценарий создаст одну запись с некоторыми произвольными значениями для типов; int, varchar, nvarchar, smalldatetime и бит. Оператор case можно заменить функцией. Он не будет перемещаться по зависимостям, но он пропустит любые засеянные столбцы.

Моя мотивация для создания этого состоит в том, чтобы протестировать мои файлы сопоставления NHibernate с таблицей примерно с 50 столбцами, поэтому мне пришлось быстро написать простой сценарий, который можно повторно -использован.

14
ответ дан 4 December 2019 в 07:35
поделиться

Существует программа из Red Gate Software , которая сделает это за вас. Он называется Генератор данных SQL .

5
ответ дан 4 December 2019 в 07:35
поделиться

Некоторые разновидности Visual Studio имеют встроенную генерацию данных. Если вы используете в нем проекты баз данных, вы можете создавать планы генерации данных. Вот статья MSDN

2
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: