为SQL Server表生成INSERT语句?
我们正在编写一个新的应用程序,在测试时,我们需要一些虚拟数据。 我已经使用MS Access将这些数据添加到相关表格中。
每隔一段时间,我们都想“刷新”相关表格,这意味着全部删除它们,重新创建它们,并运行已保存的MS Access追加查询。
第一部分(删除和重新创建)是一个简单的sql脚本,但最后一部分让我感到畏缩。 我想要一个包含一堆INSERT的安装脚本来重新生成虚拟数据。
我现在有表格中的数据。 从该数据集自动生成大量INSERT语句的最佳方法是什么?
我正在考虑类似TOAD(对于Oracle),您可以右键单击一个网格并单击另存为 - >插入语句,然后它只会在您想要的任何位置转储大型SQL脚本。
我能想到的唯一方法是将表格保存到Excel表格中,然后编写一个Excel公式来为每一行创建一个INSERT,这当然不是最好的方法。
我正在使用2008 Management Studio连接到SQL Server 2005数据库。
微软应该宣传SSMS 2008的这一功能。您正在寻找的功能已内置到生成脚本实用程序中,但该功能在默认情况下处于关闭状态,并且必须在脚本编写表时启用。
这是一个快速运行的过程,为您的表中的所有数据生成INSERT
语句,不使用SQL Management Studio 2008的脚本或加载项:
然后您将直接从SSMS获取CREATE TABLE
语句和所有INSERT
语句。
我们使用这个存储过程 - 它允许你定位特定的表,并使用where子句。 你可以在这里找到文字。
例如,它可以让你这样做:为表'titles'生成INSERT语句:
EXEC sp_generate_inserts 'titles'
正如@Mike Ritacco所提到的,但更新为SSMS 2008 R2
然后,您将直接从SSMS中获取数据的所有INSERT语句。
编辑2016-10-25 SQL Server 2016 / SSMS 13.0.15900.1
右键单击数据库名称
选择任务>生成脚本
根据您的设置,介绍页面可能会显示或不显示
选择'选择特定的数据库对象',
展开树视图并检查相关表格
点击下一步
点击高级
在“常规”部分下,选择“适用于脚本的数据类型”
点击确定
选择是否希望输出转到新的查询,剪贴板或文件
点击下一步两次
您的脚本根据您在上面选择的设置进行准备
点击完成