Access转Sql Server问题 实例说明
2009-06-14 18:26
453 查看
今天帮同学改一个老的系统作为毕业设计,这系统技术绝对落后asp+access。为了应付老师的验收,然后这同学编程又不是很好,而其到了最后时刻才想到开始做毕设,于是找到了我。
我看了他不知从哪里搞来的代码,跑了下,还行能跑,过两天就要验收程序了,把asp改成 asp.net是没时间了,于是我提议改下数据库算了,于是决定把access转成sql server。看似一个公司的产品,转起来问题到一大堆。现总结如下,
先说怎么转移数据,打开sqlserver的企业管理器,建立张表,然后右击那张表,点导入数据,然后选中数据源(我这里就是access的mdb文件),一路next,基本没什么问题,数据就这样导好了,但问题没那么简单,sql server和access的机制有很大的不同
1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1,
2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了;
3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.
ACCESS转MS SQL数据库的几点经验
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete * from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10.
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
我看了他不知从哪里搞来的代码,跑了下,还行能跑,过两天就要验收程序了,把asp改成 asp.net是没时间了,于是我提议改下数据库算了,于是决定把access转成sql server。看似一个公司的产品,转起来问题到一大堆。现总结如下,
先说怎么转移数据,打开sqlserver的企业管理器,建立张表,然后右击那张表,点导入数据,然后选中数据源(我这里就是access的mdb文件),一路next,基本没什么问题,数据就这样导好了,但问题没那么简单,sql server和access的机制有很大的不同
1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1,
2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了;
3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.
ACCESS转MS SQL数据库的几点经验
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete * from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10.
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
您可能感兴趣的文章:
- SQL Server中的数据复制到的Access中的函数
- Sql Server、Access数据排名的实现方法(例如:成绩排名)
- SQLServer与Access常用SQL函数区别
- SQL 随机查询 包括(sqlserver,mysql,access等)
- 在ACCESS和SQL Server下Like 日期类型查询区别
- Access和SQL Server里面的SQL语句的不同之处
- asp.net下Oracle,SQL Server,Access万能数据库通用类
- SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
- 将Access数据库中数据导入到SQL Server中的详细方法实例
- 八步解决ACCESS自动编号问题(将SQL SERVER 2000数据库,转换为ACCESS数据库)
- 将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)
- sqlserver,sqlite,access数据库链接字符串整理
- 自己动手把ACCESS转换到SQLSERVER的方法
- Access 导入到SQL Server 2005的方法小结
- JavaScript使用ActiveXObject访问Access和SQL Server数据库
- SQL Server数据复制到的Access两步走
相关文章推荐
- 遇到的问题-在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
- SQL Server 2016 JSON原生支持实例说明
- SQL Server 2016 JSON原生支持实例说明
- 将DAL层从Sql Server 迁移到 Access 时遇到的问题
- [转]SQL Server中四类事务并发问题的实例再现
- Access转Sql Server问题
- 实例说明 sql server 多表级联删除的两种方式
- SQL Server 2016 JSON原生支持实例说明
- 八步解决ACCESS自动编号问题(将SQL SERVER 2000数据库,转换为ACCESS数据库)
- 出现"此版本的sql server不支持用户实例登陆标志" 问题的解决方法
- SQL Server 2005数据库重装后将原数据库直接附加新数据库实例时遇到的所有权问题
- 解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
- 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
- 解决SQL Server转ACCESS自动编号问题
- asp.net 操作Access以及一个不同的SQL Server的一个问题
- 解决“此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭”问题
- SQLServer2005 Express问题:由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- 解决“此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭”问题,完整综合版。
- 安装SQL Server 2000时出现以下错误提示:“以前的某个程序安装已在安装计算机创建挂起的文件操作,运行安装程序之前必须重新启动计算机” 说明:如果重启计算机无法解决问题,可能有以下两个原因
- 几个可运行的,可以说明问题的Ajax实例