access转mssql需要注意的问题

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
自动增加字段需要重写。在access中经常使用的自动编号字段,导入到mssql后,他并不是自增型的int,需要手工设置,把导入后的自动编号字段的标识的"否"改为"是","种子"和"递增量"都为"1",才能成为自动编号


所有的默认值都丢失了。主要是数字类型和日期类型


所有now(),time(),date()要改成getdate()


所有datediff('d', time1, time2)要改成datediff(day, time1, time2)


所有datediff('ww', time1, time2)要改成datediff(week, time1, time2)


所有datediff('d', time1, time2)要改成datediff(day, time1, time2)


在mssql server中,有许多保留字,在access中是没有的,当你把数据导入到mssql的时候,问题就出来了。mssql在导入的时候,会自动给这些字段(包括数据库中的表名)加上"[字段名]",因此,你必须修改你的脚本,把相应的字段名字(或者表名字)加上中括号,或改变字段名字为不是mssql的保留字


在用access关于时间的使用,大家喜欢使用"select * from aaaa while time="&now()"这样的sql语句,然而,在mssql中没有"now()"这个函数,而是使用"getdate()",所以,所有的sql语句中的"now()"必须换成"getdate()"。


日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。


转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功


isnull(rowname)要改成rowname = null


CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能
显示不完整


备注类型要通过cast(column as varchar)来使用


true/false类型不能使用,要变为1/0


对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".


在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用


在access的sql语句中的时间使用变量查询的时候,大家一般使用"select * from aaaa while time=#"&变量名&"#",在mssql中是不行的,他的语法是"select * from aaaa while time='"&变量名&"'""。(意思是让你把日期时间变量当成字符串来使用,呵呵~~~)


原来ASP里的"delete * FROM ……"要改为"delete FROM ……"


有可能rs.update失败,修改成update 表名 set 字段='值' 这样通过(遇到的情况,提示为:
Microsoft OLE DB Provider for SQL Server 错误 '80040e38' 

乐观并发检查失败。已在此游标之外修改了该行。 

/Admin_ClassOrder.asp,行 164 )


access里面除法可以使用"/"或者"/",MSSQL里面只能使用"/" 
 
用c# 将Access表修改复制到Sql server表 开始想直接在sql server 2008用存储过程写。用到了OpenRowSet、opendatasource两个函数,然而启用Ad Hoc DistributedQueries的方法后还是一直报错,查了资料可能是因为使用的是64位系统,最终也没改好,以后再来研究,可以参考http://www.cnblogs.com/OpenCoder/archive/2010/03/18/1689321.ht 阅读详情

相关推荐

access数据库MSSQL注意问题

access数据库换为ms sql server换方法: 1、开始->Microsoft SQL Server 2008->导入和导出数据(32 位) 2、选择数据源,数据源里选择Microsoft Access,浏览选mdb文件,下一步。 3、选择目标,数据库点新建,名称自定,下一步。 4、复制一个或多个表或视图的数据,下一步。 5、选择源表和源视图,全勾选,选第一个表,点

skyax的专栏 910

ACCESS化为sql server后的注意事项

    1.ACCESS数据库中的自动编号类型在化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!    2.化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime

谭洪星 663

access 导入mssql时遇到问题及解决办法

1.运行 exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure (建立连接) 服务器: 消息 15247,级别 16,状态 1,过程 sp_configure,行 170用户没有执行此操作的权限。服务器: 消息 5812...

weixin_30787531的博客 398

AccessSqlServer注意事项

1、自动增加字段需要重写。在access中经常使用的自动编号字段,导入到mssql后,他并不是自增型的int,需要手工设置,把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”,才能成为自动编号。2、所有的默认值都丢失了。主要是数字类型和日期类型3、所有now(),time(),date()要改成getdate()4、所有datediff(d, time1

巨蟹星座 557

ACCESSSQLSERVER

前几天为制作一个网站,需要从ACCESSSQLSERVER,从网站上查看了很多的资料,但觉得没有一个能够全面覆盖要点的,所以我总结一下,顺便给出一些经验。    首先如果一开始就需要制作SQLSERVER的网站,那么最好将你的爱机装上WINDOWS2000或者2003这样的SERVER版,这样的版本是支持SQLSERVER正式版的安装的,而XP只能支持个人版或者开发版,我没有装过,但对于调试网

chengxufan的专栏 1269

asp网站从ACCESSSQLSERVER

前几天为制作一个网站,需要从ACCESSSQLSERVER,从网站上查看了很多的资料,但觉得没有一个能够全面覆盖要点的,所以我总结一下,顺便给出一些经验。    首先如果一开始就需要制作SQLSERVER的网站,那么最好将你的爱机装上WINDOWS2000或者2003这样的SERVER版,这样的版本是支持SQLSERVER正式版的安装的,而XP只能支持个人版或者开发版

websph的专栏 6137

accessMSSQL经验之谈

  由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1", 2,另外,ACCESS2000换成SQL2000后,原来属性为"是/否"的字段将被换成非空的"bit",这时候你必须修改成自己想要的属性了; ACCESSSQL SERVER中的一些经验 1.ACCESS数据库

峰不疯 2642

浅谈ACCESS升迁SQLSERVER

在软件开发过程中经常会遇到数据库升迁的问题,原因比较多,如acsess访问速度比sql server慢、删除数据记录后access会留下空档,文件越来越大(也可用压缩修复的方式减小文件大小,但太麻烦),访问速度越来越慢,甚至会数...

cuankuangzhong6373的博客 484

MSSQL ACCESS 在表格结构上应注意

今天在把一个MSSQL数据库ACCESS发现了一些问题: 在MSSQL表格中的一个(标识)递增字段ACCESS后,变成了 “数字”类型,而不是“自动编号”。 而当在Access中,一个字段类型定义为“数字”,同时已存在记录的时候,这个字段无法再修改为“自动编号”。 当时没办法,只好先把所有的表中所有的记录全删除,然后一个一个修改字段ID的类型为“自动编号”。 修改好后,再执行一次从...

weixin_30799995的博客 90

ACCESS数据库迁移到SQLSERVER数据库

ACCESS数据库迁移到SQLSERVER数据库 ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 打开ACCESS2007的数据库工具 方法一:使用ACCESS2007自带的数据库迁移工具 1、打开ACCESS2007的数据库迁移向导 2、点击SQLSERVER按钮,弹出升迁向导对话框 3、选择新建数据库 4...

dingshen2767的博客 320

浅谈ACCESS数据库升迁SQLSERVER

在软件开发过程中经常会遇到数据库升迁的问题,原因比较多,如acsess访问速度比sql server慢、删除数据记录后access会留下空档,文件越来越大(也可用压缩修复的方式减小文件大小,但太麻烦),访问速度越来越慢,甚至会数...

cuankuangzhong6373的博客 349

AccessMS SqlServer注意事项

1、自动增加字段需要重写。在access中经常使用的自动编号字段,导入到mssql后,他并不是自增型的int,需要手工设置,把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”,才能成为自动编号。 2、所有的默认值都丢失了。主要是数字类型和日期类型 3、所有now(),time(),date()要改成getdate() 4、所有datediff(’d’, time1, t

奔波只为稻梁谋,一生辛苦有似无 517
上一篇: 同时使用apache和IIS,共用80端口的一个解决方案
下一篇: Windows2003中不允许的父路径问题Active Server Pages 错误 'ASP 0131'
helloLife
博客等级 码龄20年 15粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值