我们正在编写一个新的应用程序,在进行测试时,我们将需要一堆虚拟数据。我已经通过使用MS Access将excel文件转储到相关表中添加了这些数据。

每隔一段时间,我们想要“刷新”相关的表,这意味着将它们全部删除,重新创建它们,并运行已保存的MS Access追加查询。

第一部分(删除和重新创建)是一个简单的sql脚本,但最后一部分让我畏缩。我想要一个单独的设置脚本,它有一堆insert来重新生成虚拟数据。

我现在有数据在表格里。从该数据集自动生成一个大的INSERT语句列表的最佳方法是什么?

我能想到的唯一方法是将表保存到excel表格中,然后编写excel公式为每一行创建一个INSERT,这肯定不是最好的方法。

我使用2008 Management Studio连接到SQL Server 2005数据库。


当前回答

Azure Data Studio -简单的数据脚本扩展。

插入…它生成每一行的UNION ALL SELECT。

Azure Data Studio UI是基于VSCode的,我发现它是直观和快速的,包括这个OSS扩展。

其他回答

生产数据库中有数据吗?如果是这样,您可以通过DTS设置数据的周期刷新。我们每周都在周末进行测试,每周都有干净、真实的测试数据是非常好的。

如果你还没有生产,那么你应该创建一个他们想要的数据库(新鲜的)。然后,复制该数据库并使用新创建的数据库作为您的测试环境。当你想要一个干净的版本时,只需再复制一遍干净的版本,就可以了。

不要使用插入,使用BCP

我使用sqlite来做到这一点。我发现它对于创建scratch/test数据库非常非常有用。

sqlite3 foo。Sqlite .dump > foo_as_a_bunch_of_inserts.sql

您可以使用SSMS Tools Pack(适用于SQL Server 2005和2008)。它带有一个生成插入语句的特性。

http://www.ssmstoolspack.com/

我使用的是SSMS 2008版本10.0.5500.0。在这个版本中,作为生成脚本向导的一部分,下面是一个屏幕,而不是一个高级按钮。在本例中,我只想插入数据而不需要create语句,因此必须更改两个圈起来的属性