gpt4 book ai didi

sql-server - 在 SQL Server 中创建测试数据

转载 作者:行者123 更新时间:2023-11-28 19:43:20 26 4
gpt4 key购买 nike

有没有人拥有或知道将为给定表生成测试数据的 SQL 脚本?

理想情况下,它将查看表的架构并根据每列的数据类型创建包含测试数据的行。

如果这个不存在,其他人会觉得它有用吗?如果是这样,我会抽出手指写一个。

最佳答案

好吧,我想我会抽出手指为自己编写一个轻量级数据生成器:

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 语句可以用一个函数代替。它不会向下移动依赖项,但会跳过任何种子列。

我创建它的动机是针对一个包含大约 50 列的表测试我的 NHibernate 映射文件,因此我想要一个可以重复使用的快速简单脚本。

关于sql-server - 在 SQL Server 中创建测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com