Bueno, yo pensé que iba a tirar de mi dedo y yo escribir un generador de datos de peso ligero:
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
Dado cualquier mesa, el script creará un registro con unos valores arbitrarios para los tipos ; int, varchar, nvarchar, smalldatetime y bit. La declaración de caso podría ser reemplazada por una función. No viajará por las dependencias, pero se saltará las columnas no identificadas.
Mi motivación para crear esto es probar mis archivos de mapeo de NHibernate en una tabla con unas 50 columnas, así que busqué una secuencia de comandos rápida y sencilla que se pueda reutilizar.
+1 ¡gran cosa de verdad! –
Excelente producto, pero estoy buscando algo más ligero y gratuito, ya que utilicé mi versión de prueba gratuita hace un tiempo y no puedo obtener el presupuesto para ello :( –