使用从表中收集的值创buildSQL INSERT脚本

我需要创build一个INSERT脚本,以便在另一个数据库中插入相同的数据。
如果在SQL Server中select“脚本表为>插入到”我可以轻松地重新创buildINSERT语句的框架。 但是,因为我有几个logging迁移,我宁愿避免不得不手动插入值。

因此,有没有办法“自动”获取INSERT脚本以及填入的值(来自目标表)?

我知道这可以用SSIS完成,但是我想知道是否可以用更快的解决scheme。

你可以用SSMS来做到这一点。

1 – 在对象资源pipe理器中右键单击您的数据库。
2 – select任务/生成脚本…
3 – 在“ 设置脚本选项”页面上,单击“ 高级”button,并确保“ 脚本的数据types”设置为“ 仅数据”

由此产生的脚本将在顶部有一个USE DATABASE语句。 将其更改为您要插入数据的数据库。

使用免费的 SSMS工具包来“生成插入语句”?

或者在SSMS中(没有在这台PC上确认),导出向导也允许你“脚本化数据”

它将取决于数据types,因为您需要有条件地将string值用引号括起来,或者将数值作为string强制转换。 您还需要处理问题字符:

 SELECT 'INSERT INTO dbo.DestinationTable(col1, col2, col3) SELECT ' + CONVERT(VARCHAR(12), col1) + ',' + '''' + REPLACE(col2, '''', '''''') + ''',' + '''' + REPLACE(col3, '''', '''''') + ''';' FROM dbo.SourceTable; 

维亚斯有一个非常复杂的存储过程为此目的。

当然,你可以简单地说:

 INSERT INTO OtherDatabase.dbo.DestinationTable(col1, col2, col3) SELECT col1, col2, col3 FROM dbo.SourceTable; 

换句话说,你不需要“脚本”插入,你可以运行它…