我必须将SQL Server 2000
中的现有数据迁移到SQL Server 2005
。两个数据库的模式是不同的。例如,SS2000中的Locations
表分为两个表,并且具有不同的列。 这是一次性活动。成功迁移后,我不再需要旧的数据库了。
我可以编写存储过程来从SQL Server 2000
中的insert/update
和SQL Server 2005
表中获取数据。
SSIS
怎么样?我对此没有任何经验,最好是创建SSIS
包,因为我不再需要它,需要先学习它。编辑:此编辑是在@AgentDBA回答之后:
旧数据库中的数据的一个示例以及我在新数据库中如何需要它:
旧数据库中的 Customers
表格列为FullName
,如'James White',但在新数据库中有两列FirstName
和LastName
所以这里的数据应该是FirstName
中的'James'和LastName
中的'White'。
感谢。
答案 0 :(得分:1)
虽然用这个作为学习SSIS的机会是一个很好的练习,但我想现实世界的最后期限压力将决定你最好坚持使用你所知道的工具(T-SQL,存储过程)而不是试图学习一些全新的东西,特别是对于像这样的单一用途的转换。
答案 1 :(得分:1)
您应该能够使用SQL 2005中的数据导入向导为您导入数据。
右键单击数据库,选择任务,导入数据,这将引导您完成一个很好的向导,询问您从哪里获取数据以及数据将在何处结束了。
在新SQL2005数据库中,您需要为要导入数据的每个表执行此操作,以便可以长时间使用。但是,如果您将软件包(它应该在向导的末尾附近询问)保存到桌面,那么它将保存为SSIS软件包,这是开始学习SSIS的好方法。
另外,当保存包时,您可以在需要时再次运行它。
答案 2 :(得分:0)
如果两个数据库位于不同的服务器上,SSIS将轻松处理跨服务器移动,而在T-SQL中,您必须设置链接服务器。只要你知道你需要这样做,这不是什么大问题,但是有些dbas不允许在他们的系统上使用它们,所以如果由于政治原因你不能设置链接服务器,那么SSIS就是更好的选择。否则,我会选择你所知道的,因为这是一次性的事情,除非你将来还会做很多其他的数据导入(你现在有很多DTS包吗?)。在这种情况下,不妨现在开始学习SSIS,因为它不是那么简单易学,并且在新的数据库上线之后通常有更多的时间来学习,因为在客户端处于胡思乱想之后,因为他们的数据不在他们一周前就把文件发给你了。