文章·资料  电脑软件  手机应用  网站源码




    本 站 搜 索
    推 荐 文 章        More...
华硕易电脑(ASUS Eee PC 1025C..
先来段开场白:为了外出携带方便,到淘..
Acronis True Image 使用说明
  一款可以在Windows下使用全部功..
Norton Ghost 使用详解
一、分区备份   使用Ghost进行系..
    文 章 阅 读 排 行
Windows 系统修改默认文件类型..
Windows 系统文件类型图标,通常由默..
关于天涯社区恢复访问进展的情..
亲爱的天涯用户: 自2023年4月1日起..
常见数据库介绍与对比(SQL Serv..
常见数据库的对比分析,涵盖你提到的 A..
DELL 笔记本电脑 BIOS 设置
  Dell笔记本电脑BIOS也是在Phoniex..
编辑万象网管 2004 数据库
万象网管 2004 数据库 运行 Micros..
新浪云终止服务
申请/注销/关闭腾讯QQ空间
  申请/注销/关闭腾讯QQ空间网址:ht..
Windows 桌面图标显示慢
这个问题比较复杂,可能的情况有很多,..
用FLASH和ASP实现数据库查询
本文给你介绍一种在Flash中应用ASP技..
电脑故障维修判断指导大全(联..
第三章 磁盘类故障 一、定义举例 这..
  文 章 信 息
传统 ASP 网站,Access 2003 数据库迁移到 SQL Server 2016 数据库的教程(图)
〖评论()〗〖留言〗〖收藏〗
〖文章分类:电脑·手机·网络 / 网站设计·开发·优化〗〖阅读选项〗
  使用微软提供的数据库迁移软件 Microsoft SQL Server Migration Assistant for Access(简称:SSMA for Access,SSMA),可以很方便的将 Access 2003 迁移到 SQL Server 2016。我这里源数据库是 Microsoft Access 2003,准备迁移到虚拟主机的 Microsoft SQL Server 2016,我本机没有安装 Microsoft SQL Server 2016 软件,通过 SSMA 软件直接把数据上传/导入到虚拟主机的 Microsoft SQL Server 2016。
  Microsoft Access 2003 数据库引擎 Microsoft.Jet.OLEDB.4.0,需要安装 SSMA 32位的,我这里安装:Microsoft SQL Server Migration Assistant for Access V9.5.0 x86.msi。
V9.5.0:支持 SQL Server 2012/2014/2016/2017/2019/2022,Azure SQL Database/Managed Instance
V10.6.26238:支持 Azure SQL Database/Managed Instance,SQL Server 2025/2022/2019

  一、安装 SSMA:
  1、如果出现这个界面,说明你的系统缺少 Access 数据库引擎,单击[Download]打开微软网站下载页面,单击[Next]继续安装:

  我这里安装:Microsoft Office Access Database Engine 2007 V12.0.4518.1014.exe

  2、软件协议:


  3、典型安装,自定义安装,完整安装:


  4、检测/更新新版本:


  5、安装完成,运行 Microsoft SQL Server Migration Assistant for Access(运行时检测你的系统是否安装 Microsoft .NET Framework,如果没有,按提示下载安装,要求 Microsoft .NET Framework 4.7.2 或更高版本),关闭向导:

[在新窗口浏览图片]

  二、新建项目:
  6、新建项目(File -> New Project),填写/选择:项目名称、保存位置、数据库版本:


[在新窗口浏览图片]

  7、添加数据库(Add Databases),展开数据库,看到表名(如果没有安装 Access 数据库引擎,此时看不到表名):


[在新窗口浏览图片]

  8、创建报告(选择表名,右键选择 Create Report),创建完成,生成网页报告,如果 Error 和 Warning 有信息,按提示信息修改一下数据库(如果没有安装 Access 数据库引擎,提示消息:There is nothing to process):

[在新窗口浏览图片]

[在新窗口浏览图片]

  9、项目设置(Tools -> Project Settings);General -> Tables:Add timestamp columns 选择 Never(默认迁移成功后,每个表都会自动新建一个字段 SSMA_TimeStamp,选择 Never 表示禁用);Type Mapping:date 修改为 datetime,删除 memo (for Access 97)、text (for Access 97):

[在新窗口浏览图片]

[在新窗口浏览图片]

[在新窗口浏览图片]

  三、连接数据库:
  10、连接虚拟主机的 SQL Server 2016 数据库(Connect to SQL Server),填写/选择:数据库服务器地址、端口、数据库名称、认证方式、用户名、密码,选择“Encrypt Connection”和“Trust Server Certificate”:

[在新窗口浏览图片]

[在新窗口浏览图片]

  11、转换架构(Access Metadata Explorer -> 表名 -> Convert Schema),转换成功,在 SQL Server Metadata Explorer 窗口就能看到表名:

[在新窗口浏览图片]

[在新窗口浏览图片]

  12、数据库表同步到服务器(SQL Server Metadata Explorer -> Tables 右键 -> Synchronize with Database):

[在新窗口浏览图片]

[在新窗口浏览图片]

  13、数据同步到服务器(Access Metadata Explorer -> 表名 -> Migrate Data):

[在新窗口浏览图片]

[在新窗口浏览图片]


项目保存退出后,重新打开/加载项目:

[在新窗口浏览图片]

刷新数据库:

[在新窗口浏览图片]


软件下载:
Microsoft SQL Server Migration Assistant for Access V9.5/10.6(SSMA for Access 迁移数据库)
Microsoft Access Database Engine 2007/2010/2016(Access 数据库引擎)
Microsoft .NET Framework V4.0/V4.5.2/V4.6.2/V4.7.2/V4.8


数据库迁移完成,接下来修改 ASP 网页文件,只需修改在 SQL 语句不能通用的函数,不是 SQL 语句的函数无需修改。
在 ASP 的 SQL 字符串里,下面这些 Access 函数在 SQL Server 都不能直接用,全局搜索检查:
now() → getdate()
instr(AR_Keyword,'abc')>=1 → charindex('abc',AR_Keyword)>=1  AR_Keyword 位置不一样,搜索可用 AR_Keyword like '%abc%' 替代。
iif() → case when ... then ... else ... end
mid(AR_Keyword,2,3) → substring(AR_Keyword,2,3)
datediff("d",a,b) → datediff(day,a,b)
dateadd
  "yyyy" → year / yy
  "q" → quarter / q
  "m" → month / mm
  "d" → day / dd
  "h" → hour / hh
  "n" → minute / mi
  "s" → second / ss   SQL 用 datediff 时,使用 second 时数值太大出错,改成 minute 就可以。
连接符号:& → +  AR_Keyword='"&trim(Request.Form("AR_Keyword"))&"'+AR_Keyword
日期时间:#2026-10-08# → '2026-10-08'
DateValue(SW_UpdateDateTime)=date() → cast(SW_UpdateDateTime as date)=cast(getdate() as date)
nz() → isnull()
rs.Open 之后、rs.Update 之前,不能执行 conn.Execute 去修改/更新同一条记录。

想要更详细的,百度搜索一下。迁移过程中出现错误,把错误信息发给百度,或者豆包等AI软件。

文章作者:啊估整理  更新日期:2024-10-07
〖文章浏览:〗〖发送文章〗〖打印文章〗