注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

酷屋江湖网官方博客 coolwu.com

江湖专卖,漏洞修补,江湖插件定制,服务器安全设置...

 
 
 
 
 

日志

 
 

access与mssql通用写法总结  

2014-10-29 09:32:08|  分类: 程序交流和Web前 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
首先说一下心得:
一、在处理数据库的时候一定要按标准的写法,否则在转库的时候会带来很大的问题
二、尽量不要用默认值,可以在写入时传值,默认值在sql里占用一定的空间,而且在转换时会很麻烦,需要一个个设置默认值,要养成一个好习惯

注意事项:
一、acc的是/否型和sql的bit型
    判断为真:where isok<>0
    判断为假:where isok=0
    ps:isok=1可用在sql但不能用在acc中,acc用的是isok=-1或者isok (判断为假是 not isok,但不适用于sql)
二、access的文本型和sql的nvarchar型
    判断为空:where title='' or title is null
    判断非空:where title<>'' and title is not null
    ps:只所以用到了null是因为,如果在数据库中复制记录,那么空的文本会是null的无效值,而并非空的字符串
三、时间方面
    1、查询或更新
    查询通用写法where regtime='"&now()&"'"   如果是acc也可以这个where regtime=#"&now()&"#"
    注意,时间一定要包含到外面去,内部时间acc用now(),而sql用getdate()
    2、datediff时间比较
     ACC:datediff('d',regtime,'"&now()&"')<10
     MSSQL(去掉了单引号):datediff(d,regtime,'"&now()&"')<10
    3、between时间范围
     acc用#包含,mssql用'包含
     where addtime between #"&sj1&" 00:00:01# and #"&sj2&" 23:59:59#
     where addtime between '"&sj1&" 00:00:01' and '"&sj2&" 23:59:59'
四、备注类型要通过cast(column as varchar)或convert(nvarchar(500),username)来使用
五、查询问题
    通常小数据使用like来查询,但在mssql中的ntext字段不能使用replace和like函数,通用的方法是用instr来判断
    access可以使用instr,但在mssql中不存在instr,需要改用charindex,注意instr和charindex的使用方法是相反的

总之:在acc和sql并存情况下,要避免时间字段上的问题

最后发一个mssql2000升级mssql2005升级mssql2008的说明,顺向升级的话,直接附加库就直接能用,库是兼容的,逆向降级的话,我倒没试过,大家可以试一下,这个下滑升级网上搜索不了,还是自己试了才知道
  评论这张
 
阅读(392)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017