SQL Server-在无法连接服务器的表之间复制数据
我们希望我们的一些客户能够将一些数据导出到一个文件中,然后我们就有了一个工作,可以将这些数据导入到我们所在地数据库的空白副本中。注:DBA将不参与。这将是我们应用程序中的一个函数 我们可以忽略表模式差异——它们将匹配。我们有不同的桌子要处理 因此,在客户端,该功能将运行类似于:SQL Server-在无法连接服务器的表之间复制数据,sql,sql-server,Sql,Sql Server,我们希望我们的一些客户能够将一些数据导出到一个文件中,然后我们就有了一个工作,可以将这些数据导入到我们所在地数据库的空白副本中。注:DBA将不参与。这将是我们应用程序中的一个函数 我们可以忽略表模式差异——它们将匹配。我们有不同的桌子要处理 因此,在客户端,该功能将运行类似于: insert into myspecialstoragetable select * from source_table insert into myspecialstoragetable select * from s
insert into myspecialstoragetable select * from source_table
insert into myspecialstoragetable select * from source_table_2
insert into myspecialstoragetable select * from source_table_3
然后,我从myspecialstoragetable运行一个select*并获得一个.sql
文件,然后他们可以将该文件发送给我,然后我们可以使用一些作业/sql
脚本导入到数据库副本中
我想我们可以使用XML,但我有点迷茫
谢谢您看过批量复制实用程序了吗?您可以使用自己的程序对其进行包装,以方便不太复杂的用户使用。因为它是应用程序中的一个函数,应用程序前端是用什么语言编写的?如果是.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语句 谢谢你详细的回答。我建议不要使用DTS(也许你指的是SSI),因为你需要包括所有的运行时、许可等,这会使事情变得相当复杂。另外,为了澄清这一点,您确实可以使用插入硬值的INSERT语句填充.SQL文件(事实上的任何文件)。我指的是由SQL Server界面的“生成脚本”菜单项生成的.SQL文件。根据您的评论,编辑了答案以澄清相同的问题。