我有大约25个表,我想用从数据子集中挑选的随机数据进行更新。我希望随机选择数据但有意义 - 比如将数据库中的所有名字随机更改为新的名字。所以我不想在字段中随机垃圾,我想从提前填充的临时表中提取。
我能想到的唯一方法是使用循环和一些动态sql。
但是,无论何时我认为SQL中的“循环”,我认为我做错了。
有问题的数据库里面有很多非规范化的表,所以我认为我需要一个循环(第一个名称字段分散在数据库中)。
有更好的方法吗?
答案 0 :(得分:3)
Red Gate有一个名为SQL Data Generator的产品,可以生成虚假名称和其他虚假数据用于测试目的。这不是免费的,但他们有一个试用版,所以你可以测试它,它可能比试图自己做更快。
(免责声明:我从未使用过此产品,但我对其他产品非常满意。)
答案 1 :(得分:1)
我写了一个存储过程来做这样的事情。它不如Red Gate产品那么好,只有名字,但如果你需要快速和脏的东西,你可以从
下载http://www.joebooth-consulting.com/products/
脚本名称为GenRandNames.sql
希望这有帮助
答案 2 :(得分:0)
通过回答我自己的问题来打破第四道墙。
我确实尝试过这个sql脚本。我学到的是SQL几乎随意乱糟糟的。该脚本很慢且很奇怪 - 引用仅为脚本创建的视图的函数,无法在tempdb中创建。
所以我做了一个控制台应用程序。
洗涤,冲洗,重复。我用这种方式每小时更新了大约220万行。也许它可能会更快,但它正在进行许多小更新,所以它没有任何人的方式。