概述
2013 之前的版本,Access 本身提供了升迁向导可以使用。而从 2013 版开始,Access 内置升迁向导被弃用,我们只能通过第三方工具来完成数据升迁。
但第三方工具总归在使用上有所不便,基于这一情况,平台从 2.5.0 版开始,集成了新的升迁工具,可以非常方便的一键完成升迁。
升迁参数
Access数据库
会自动将数据库连接配置中数据库类型为“Access”的配置加载到列表供选择。
SQL Server 数据库
会自动将数据库连接配置中数据库类型为“SQL Server”的配置加载到列表供选择。
升迁选项
-
覆盖已存在的数据表:如果表在 SQL Server 中已存在,是否自动覆盖。
-
仅创建表结构;不升迁任何数据
升迁验证
升迁之前会自动检查要升迁的 Access 数据库结构及数据,以确定是否能够进行升迁,以及可能存在的一些和预想的不一致的情况。
- 错误:存在无法处理的情况,升迁中断无法继续。
- 表中没有主键。
- 表中存在附件类型、计算类型或允许多值的字段,在 SQL Server 中没有可以对应转换的字段。
- 表中日期字段存在小于 1753-01-01 的记录,而 SQL Server 中的 datetime 字段类型最小值是 1753-01-01。
- 建议:存在一些不太合理的或可能引发问题的情况,可以选择是否继续升迁。
- 单精度/双精度类型字段无法进行精确计算,建议改为小数类型。
- 提醒:存在一些和预期可能不一致的情况,会进行提示,不影响继续升迁。
- 超链接字段会转换为 nvarchar(max) 类型,再从 SQL Server 链接到 Access 后该字段将失去超链接特性。
升迁字段类型对照
升迁前的 Access字段类型 | 升迁后的 SQL Server字段类型 | 备注 | |
---|---|---|---|
短文本(文本) | Text | nvarchar(n) | n代表1~255的数字 |
长文本(备注) | Memo | nvarchar(max) | |
超链接 | Hyperlink | nvarchar(max) | 超链接会被转换为备注类型,失去超链接特性,文本内容两端会有#号。 |
是/否 | Yes/No | bit | 升迁时Null值会自动转换为0,字段将被设为不允许Null。 |
日期/时间 | Date/Time | datetime | Access 日期有效区间从100-01-01至9999-12-31 SQL Server 日期有效区间从1753-01-01至9999-12-31 |
货币 | Currency | money | |
数字 - 字节 | Number - Byte | int | |
数字 - 整型 | Number - Integer | int | |
数字 - 长整型 | Number - Long | int | |
数字 - 小数 | Number - Decimal | numeric(p,s) | p代表数字的总位数,最大38位,s代表小数位数。 |
数字 - 单精度型 | Number - Single | real | 实际存储的是近似值,如果需要计算,建议改为小数类型。 |
数字 - 双精度型 | Number - Double | float | 实际存储的是近似值,如果需要计算,建议改为小数类型。 |
数字 - 同步复制ID | Number - Replication ID | uniqueidentifier | 即自动生成的GUID(全球唯一识别码)。 |
自动编号 - 长整型 | AutoNumber - Long Integer | int | 自动编号字段不是一种单独的类型,只是在相应类型字段上增加了自增长属性。 |
自动编号 - 同步复制ID | AutoNumber - Replication ID | uniqueidentifier | 自动编号字段不是一种单独的类型,只是在相应类型字段上增加了自增长属性。 |
注意事项
-
如果数据库不存在,需要新建数据库,必须先确保 SQL Server 用户名被指定为了 dbcreator 角色,否则数据库将无法创建成功,会导致升迁失败。
-
如果数据库已存在,必须先确保 SQL Server 用户名已和指定数据库关联,拥有访问该数据库的权限,否则将无法访问数据库,会导致升迁失败。
修订记录
- 2019-07-08 v2.5.0 引入。
- 2019-07-14 增加注意事项说明
- 2021-06-03 v2.6.0 参数填写改为选择相应连接配置。