我试图想办法让SQL Server 2008使用ADO.NET Provider中的模式导入数据。您可以使用数据库导入向导并选择任何ADO.NET提供程序(在本例中我使用的是VistaDB)。但是,一旦您进入实际导入,一个或多个表中的复制数据将显示为灰色。您只能编写查询。我想复制整个数据库架构和数据。
我在在线帮助中找到了一些参考资料,默认情况下只有Microsoft提供商可以使用它,并且您必须为第三方构建自定义描述符。然后帮助指向:\ Program Files \ Microsoft SQL Server \ 100 \ DTS \ ProviderDescriptors以查找目录。查看XML文件看起来好像需要对所有模式和定义加载进行SQL查询。为什么不能通过所有ADO.NET Providers必须实现的GetSchema()调用来加载它们?这对我没有任何意义。
然后我发现您可以从任何ADO.NET Provider获取SQL Server中DTS包中的所有模式。我写的最后一个DTS包大概是在10年前。看看2008版本,我完全迷失了。如何获得DTS包来加载整个数据库模式并将其导入SQL Server?
或者,我是否过度思考并且有更简单的方法可以做到这一点?
答案 0 :(得分:0)
好的,我最终创建了两篇关于此主题的博客文章,专门使用SQL Server工具从VistaDB迁移到SQL Server。它是非直观的,你必须使用SSIS,没有别的办法。
Using SQL Server Import and Export Wizard with VistaDB - 大部分有关使用默认向导的信息,但我不建议这样做。它一次只能做1个表,设置很痛苦。您也无法使用SQL Server Standard或更高版本之外的任何内容重复运行(快递无法执行此操作)。
Using SQL Server Integration Services to Migrate VistaDB 4 Data - 本文中的大部分内容适用于任何ADO.NET提供程序。我从mySQL专家,DB2和其他人那里找到了部分信息。我只是为VistaDB用户整理了一切。
有趣的信息是,我花了3.5个小时通过SSIS为11表数据库构建迁移。这个过程非常痛苦,有很多点击步骤让我疯狂(使用高级编辑,而不是正常编辑)。一旦我获得了整个SSIS包,就需要大约2分钟才能运行。然后我可以(理论上)在我想要的时候重新运行它。但在我的情况下,我只想移动数据和结构一次。很多时间进行设置。
然后我写了一个简单的应用程序来遍历我的所有表,只是吐出我可以从sqlcmd运行的SQL语句。编写该应用程序大约需要1.5小时,并在大约10秒内执行。但是后来sqlcmd用了将近一个小时的时间来运行所有这些语句。
我可以构建我们的数据迁移向导的反向(它从SQL Server复制到VistaDB)。您只需单击7次就可以迁移数据库,并且运行需要几秒钟。所有数据访问都是通过对ADO.NET Provider的GetSchema()调用。