是否可以将架构和数据从SQL Server数据库移动到另一个(驻留在不同的物理机器上)。该选项应该支持SQL Server 2005以后的版本。使用java以编程方式移动sql server架构和数据
我发现了几个可以完成其中一些的COM/.NET程序集,但我们将支持以Java为中心的解决方案。
那么有没有可以完成任务的系统存储过程等?
是否可以将架构和数据从SQL Server数据库移动到另一个(驻留在不同的物理机器上)。该选项应该支持SQL Server 2005以后的版本。使用java以编程方式移动sql server架构和数据
我发现了几个可以完成其中一些的COM/.NET程序集,但我们将支持以Java为中心的解决方案。
那么有没有可以完成任务的系统存储过程等?
感谢您的额外细节。如果您只能使用Java和TSQL,那么您的选择会受到一定的限制,因为用于MSSQL的API全部都在.NET中,大多数第三方工具也是基于.NET的。
您还没有提到要运行代码的操作系统,您的目标是什么(部署?高可用性?报告?)或需要多久执行一次(一次?按需?计划?)但假设它的Windows,并且可以使用MSSQL的命令行工具(sqlcmd.exe,等的Bcp.exe),然后这里有一些可能性:
导出和导入数据不幸的是,Java的唯一的限制意味着你不能使用SMO,它提供了一个管理MSSQL对象,包括现有对象生成DDL一个完整的API。而Visual Studio数据库项目大概也是不可能的,这意味着你不能使用VSDB deployment features。
您应该能够从Java调用SQL Server管理对象(SMO),就像从任何其他编程语言一样。 The documentation is here。查看示例代码。那里有Java例子。
Java示例在哪里? Java不是CLR语言,不能直接访问SMO。正如你链接到的文档所说,“SMO是一个.NET程序集,要使用Microsoft .NET Framework进行编程,必须选择公共语言运行库支持的语言,在SMO参考中,诸如Visual Basic .NET和Visual C#.NET之类的语言。“另请参阅以下问题:http:// stackoverflow。com/questions/283679/how-can-i-call-net-code-from-java – Pondlife 2012-02-10 13:28:43
可能是错误的,但我之前在社区内容中看到过Java编码。 – 2012-02-10 14:53:01
你是什么意思'移动'模式和数据?你有什么网络/操作系统/权限限制?你可以只备份数据库,复制文件并在另一台服务器上恢复它?你可以使用MSSQL复制吗?你能编写.NET命令行工具并从Java调用它们吗? – Pondlife 2012-02-10 12:24:57
不,我们不能写任何.NET特定的代码。我们受限于只有Java/SQL Centric解决方案是可以接受的。我们可以假设我们没有任何限制,我们可以尝试备份和恢复数据库,但有什么办法可以自动完成。 – praveen 2012-02-13 08:11:14
并通过移动模式和数据 - 我的意思是复制整个模式,如表和过程和触发器。对于有选择的表格,也移动表格中的数据。 – praveen 2012-02-13 08:14:04