Eyifan专栏

在此写出自己在工作、情感中的心声!

用户操作
[即时聊天] [发私信] [加为好友]
蔡虹ID:aiunong
85773次访问,排名1118好友12人,关注者25
致力在ERP领域发展,目标成为 供应链专家、顾问。欢迎志同道合的朋友与我联系。
aiunong的文章
原创 28 篇
翻译 0 篇
转载 48 篇
评论 117 篇
蔡虹的公告
欢迎光临,希望大家积极参与进来,共同探讨技术上的问题,当然也欢迎大家讲出自己的动人故事!
联系方式:QQ:82232942


最近评论
ASP_lover:



www.soAsp.net 编程学习网 技术+ 实例应用 讲解不错。 推荐大家!

有很多 技术资料也很好!



btwlzyq:石油配件泥浆泵配件Petroleum Machinery
石油配件
泥浆泵配件
Petroleum Machiner……
chenjinmiao:挺好
chenjinmiao:挺好
文章分类
收藏
    相册
    个人专集
    其它
    山海关燕塞湖之旅
    理财资讯
    和讯
    第一理财网
    友情联接
    CSDN葛涵涛专栏
    DPR
    Drate的随笔
    EagleZhang
    股市叶弘BLOG
    知识性网站
    PD11 中文教程
    UMLchina论坛
    UML软件工程组织
    企业方案与案例ERP
    永联软件工程UML
    软件工程专家网
    软件研发之窗(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 ZT.浅谈ACCESS数据库升迁SQLSERVER注意事项收藏

    新一篇: Zt.SQL SERVER与ACCESS,EXCEL的数据转换 | 旧一篇: 程序优化的问题--Locate定位查询

    在软件开发过程中经常会遇到数据库升迁的问题,原因比较多,如acsess访问速度比sql server慢、删除数据记录后access会留下空档,文件越来越大(也可用压缩修复的方式减小文件大小,但太麻烦),访问速度越来越慢,甚至会数据库损坏,损坏得比较轻的可以找第三方工具来修复,便严重时会导致数据库无法修复,或修复后数据记录会损坏。所以我们大有必要升迁我们现有的Access数据库到SQL Server;
    现谈谈笔者在升迁时的做法及注意事项
    1,对于日期字段字段
      access表示为:#1981-28-12#
      SQLSERVER2000表示为:''1981-02-12''
    2,SQL语句区别,select ,update 在对单表操作时都差不多,
    但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句对比:
      SQLSERVER中更新多表的UPDATE语句:
      UPDATE Tab1
      SET a.Name = b.Name
      FROM Tab1 a,Tab2 b
      WHERE a.ID = b.ID;
      同样功能的SQL语句在ACCESS中应该是
      UPDATE Tab1 a,Tab2 b
      SET a.Name = b.Name
      WHERE a.ID = b.ID;
    即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.
    更新单表时:都为:
    UPDATE table1 set ab='12',cd=444 where ....
    3,delete语句
       access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。
      sqlserve 中则为: delete from table1 where a>2 即没有*号
    4,as 后面的计算字段区别
    access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num  即可以把AS后的字段当作一个数据库字段参与计算。
    sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num  即不可以把AS后的字段当作一个数据库字段参与计算。
    5,[.]与[!]的区别
      access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2  ,中间的AS可以不要。
     sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2  ,中间的AS可以不要。
    6,联合查询时,
       access中多表联合查询:'select a,b from(
    select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b
    sqlserve 中则'select a,b from(
    select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。---
    7,access升级到sqlserver时,
      可以用sqlserver的数据导入工具导入数据,但要做必要的处理。
      access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1,把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar->varchar.把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)
    8,true与1=1
    access用where true表示条件为真,
    sqlserver用where 1=1表示条件为真
    9,判断字段值为空的区别
    普通空:
    Access和sql server一样 where code is null 或 where code is nol null
    条件空:
        Access:iif([num] is null,0,[num])  或 iif([num] is null,[num1],[num])
        SQLServer: isnull([num],0) 或 isnull([num],[num1])
    10,SQL语句取子串的区别
    access:MID(字段,n1,[n2]),LEFT(字段,n),RIGHT(字段,n)
    如:select left(cs1,4)+'-'+cs2 as cs3
    SQLServer: SUBSTRING(expression, start, length)
    如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + '-' + cs2 as cs3  

    附:如何发布基于ADO+SQL SERVER的应用
      很多朋友在问如何发布基于ADO+SQL SERVER的应用程序,笔者作了测试,如下:
    Win98访问xp或2K的SQL SERVER 2000服务器,不用任何SQL的DLL文件,只要保证98能与其它工作组里的机子正常通信(能访问另外一台机子里的共享文件),这一步是保证98安装了这三个协议,TCP/IP,SPX/IPX,NETBEUIDG三个协议,
     我的测试环境是,98se+xp,98se只安装了必要的驱动程序,其它的程序一个也没有装(专门装来测试这个的) 

    发表于 @ 2006年02月10日 14:12:00|评论(loading...)|编辑

    新一篇: Zt.SQL SERVER与ACCESS,EXCEL的数据转换 | 旧一篇: 程序优化的问题--Locate定位查询

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 蔡虹