SQL Server - 在无法连接服务器的表之间复制数据

时间:2017-08-15 11:08:37

标签: sql sql-server

我们希望我们的一些客户能够将一些数据导出到文件中,然后我们有一个工作将其导入到我们所在位置的数据库的空白副本中。注意:不会涉及DBA。这将是我们应用程序中的一项功能。

我们可以忽略表格架构差异 - 它们会匹配。我们有不同的表格来处理。

因此,在客户方面,该功能会像以下一样运行:

insert into myspecialstoragetable select * from source_table
insert into myspecialstoragetable select * from source_table_2
insert into myspecialstoragetable select * from source_table_3

然后我运行select * from myspecialstoragetable并获得一个.sql文件,然后他们可以发送给我,然后我们可以使用一些job/sql脚本导入我们的数据库副本。

我认为我们可以某种方式使用XML,但我有点迷失。

由于

2 个答案:

答案 0 :(得分:1)

您是否查看了批量复制实用程序bcp?您可以使用自己的程序将其包装起来,以便为不太复杂的用户提供便利。

答案 1 :(得分:0)

因为它是应用程序中的一个函数,所以应用程序前端用什么语言编写?如果是.NET,则可以使用SQL Server中的数据转换服务进行示例导出。在最后一步中,您可以将步骤保存到VB / .NET模块中。如有必要,请修改此文件以更改表名称等。将此DTS模块集成到您的应用程序中。在进行样本导出时,将其导出为合适的格式,例如.CSV,.Excel等,无论您从哪种格式导入空白数据库。

每次用户想要导出时,他都必须单击一个按钮,该按钮将调用集成到您的应用程序中的DTS模块,该按钮将数据转储为所需的格式。他可以将此类文件邮寄给您。

如果您的应用程序不是用.NET编写的,无论使用哪种语言编写,它都有从SQL Server读取数据并将其转储到带有分隔符的.CSV或文本文件的选项。如果它是原始语言,则可能必须通过连接每个记录的字段,循环记录并写入文件来完成。

XML对于这一点来说太过牵强,尽管这并非不可能。最后,您应该能够解析XML文件并将其导入您的位置。此外,如果不是,XML并不适合。记录太大了。

你可能会想到一个.sql文件,就像在MySql中一样。在SQL Server中,由SQL Server接口的“生成脚本”功能生成的.sql文件用于表结构/ DDL,而不是为每个记录的硬值生成insert语句。