Access从2013版本开始(包括2016)取消了升迁Sqlserver功能,需要使用SSMA( SQL Server Migration Assistant)
以前的Access 2000,Access 2002, Access2003 ,Access 2010 包含一个Access升迁到Sql server的功能,但是从Access 2013版本开始,微软取消了升迁Sqlserver功能
将这个升迁功能 集成到 SSMA工具里
用SSMA升迁工具移植Acceses到SQL Server的几点问题:
1,映射ACCESS和SQL之间的数据类型
SSMA向导将处理数据类型不兼容的问题
2,ACCESS和SQL的索引差别
如果表没有主键字段,或者至少有一个唯一索引,SSMA将向那个表增加一个标识字段,ACCESS升迁向导也许不能一起升迁表,升迁表之前向表中增加一个唯一索引(如一个自动生成的编号)将避免这个问题
3,SQL在一个唯一索引字段中不支持多个空值,如果一个表在唯一索引字段中有多个空值,就不能升迁这个表,可以从字段 删除这个唯一索引或者在升迁之前限制它不超过一个空值
4,日期限制
ACCESS 100年1月1日到9999年12月31日
SQL 1753年1月1日到9999年12月31日 where mydatefield<#1-1-1753#
5, 表达式
ACCESS 双引号 #05/29/2013# &
SQL 单引号 '05/29/2013' +
6, 不能升迁的ACCESS的函数
datevalue() 只能是长的象日期的文字,如果真的是日期,返回错误值#value
域聚合函数
first() 返回列中第一个记录的值
last()
nz() 空值转化
strconv() strconv("需转换的字符串","转换类型")
switch() switch(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2
time() 返回时间小数值
timeserial() 含有时分秒时间
timevalue() 对输入的文本型数据进行计算,得出规范的时分秒格式
val() val(字符串表达式)将数字字符串换成数值 VAL("12 bC")=12 CSTR(125)="125"
weekdayname() 一星期中的某天