使用java以编程方式移动sql server模式和数据

时间:2012-02-10 11:30:39

标签: sql-server migration

是否可以将架构和数据从SQL Server数据库移动到另一个(驻留在不同的物理机器中)。 SQL Server 2005以后应该支持该选项。

我发现了一些可以做其中一些的COM / .NET程序集,但我们支持以Java为中心的解决方案。

那么有没有可以完成任务的系统存储过程等?

2 个答案:

答案 0 :(得分:2)

感谢额外的细节。如果您只能使用Java和TSQL,那么您的选项会受到限制,因为使用MSSQL的API都在.NET中,大多数第三方工具也都是基于.NET的。

您还没有提到您想要运行代码的操作系统,您的目标是什么(部署?高可用性?报告?)或您需要执行此操作的频率(一次?按需?计划?)但是假设它是Windows,你可以使用MSSQL命令行工具(sqlcmd.exe,bcp.exe等),这里有一些可能性:

  • BACKUP/RESTORE - 这会复制整个数据库,因此您无法管理单个对象,当然如果覆盖目标数据库,则会丢失所有现有数据
  • Replication - 在服务器之间复制数据和objects,但设置和管理可能很复杂
  • 使用Integration Services创建在服务器之间复制数据和对象的包
  • 使用third-party tool命令行支持并从Java
  • 驱动它
  • 编写自己的程序以从源代码控制获取SQL脚本,并使用sqlcmd.exe对正确的数据库执行它们;您可以使用bcp.exe导出和导入特定表格中的数据

不幸的是,仅Java限制意味着您无法使用SMO,它提供了用于管理MSSQL对象的完整API,包括为现有对象生成DDL。并且Visual Studio数据库项目可能也是不可能的,这意味着您无法使用VSDB deployment features

答案 1 :(得分:0)

您应该可以使用Java从任何其他编程语言调用SQL Server管理对象(SMO)。 The documentation is here。查看示例代码。那里有Java示例。