本人使用的网站空间送了个200M的SQL Server2008 R2数据库,我不用白不用。所以上周花了很多时间把网站从Access和XML数据存储上迁移到了SQL Server数据库,顺便也升级了一下架构,目前博客子系统已基本完成迁移,最近将逐个迁移页面集系统、留言等模块。

在迁移的过程中,有许多值得记录的经验,在实际项目中非常实用,所以记录下来以备参考。

首先,我的迁移思路是:数据的迁移尽量不通过程序去做,应当采用SQL Server去实现。那么第一步我就得把Access数据库迁移到SQL Server上,这样才能在SQL Server中进行一致的管理和迁移到新的数据库上。

我原来的数据库是Access2007格式的(格式没有太大的关系,2003也可以这样操作)。在Access 2010中的操作方法如下:

1. 在Database Tools选项卡下选择“SQL Server”:

2. 在弹出的Upsizing Wizard中选择"Create new database"

3. 然后配置目标SQL Server的连接信息,这里我是本机,Windows身份验证。注意,最后一个文本框中输入的是导入到SQL Server中的数据库的名称,这个数据库必须在SQL Server里不存在。这个名称很重要,之后我转储数据会经常用到。

4. 选择你需要导入到SQL的表,可以选择单个,也可以选择全部。点击“>”箭头就可以。

5. 根据自己的需要,选择哪些信息要导入到SQL Server。注意,不要在table中添加time span,所以要将那个下拉框选为"No, never"

6. 最后一步,选择"No application changes"。因为我迁移到SQL Server后,打算用Entity Framework做数据访问层,所以程序必然要改,这个最后要手工处理的。

7. 接下来Access就会连接SQL Server完成导入,最后会出来一张报表,不用鸟他。

8. 打开SQL Server,我的数据库已经乖乖的躺在里面了。导入完成。

但大家要注意,这个被导入的数据库是非常特殊的,许多实现都和SQL默认的不一样,所以尽量不要使用它来直接作为生产环境数据库。(不信你可以将数据库导出为SQL脚本看看里面都是什么奇葩)。所以我们需要再创建一个新数据库用来转储。下一篇文章将会介绍新数据库的建立和数据转储。