七彩课堂[网页设计ASP.NET教程系列]
将ACCESS转化成SQL2000的方法和注意事项
   将ACCESS转化成SQL2000的方法和注意事项
   一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;
   二,转换的方法
   1,打开”控制面板“下”管理工具“中的”数据库源“;
   2,按”添加“添加一个新的数据源,在选择栏里选“Driver do microsoft Access (*.mdb)”,完成后将出现一个框,在“数据库源”里面输入你想写的名称,我取名叫“ABC”,说明不需要填,

接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。数据源在这里建好了,剩下转换了。
   3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;
   4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;
   5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“;
   6,“目的”不需要修改,选择服务器(一般下为自己的本机local,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),使用WINDOWS 身份验证指用自己的系统管理员身份操作

,使用SQL身份操作验证可以用于网站的操作,推荐用后者;
   7,选上使用SQL身份操作验证后,填写你的用户名和密码,我自己选择的是系统默认号码sa,****,数据库选择刚新建的ABC,按下一步;
   8,这一步的两个单项选择,从数据源复制表和视图与用一条查询指令指定要传输的数据,选择前者,按下一步继续;
   9,这里将出现你自己ACCESS数据库的表,按全选后,下一步;
   10,DTS导入/导出向导,看立即运行被选中按下一步,
   11,按完成继续;
   12,这个步骤你将看到你的数据被导入SQL2000里面,当出现已经成功把XXX个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有

红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.
   三,数据修改
   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数据库处理中,却不能用。
   具体说明和操作实例
   Access与Sql Server之ASP代码比较
   后台数据库:
   [Microsoft Access]
   与
   [Microsoft Sql Server]
   更换之后,ASP代码应注意要修改的一些地方:
   [一]连接问题(举例)
   [Microsoft Access]
   constr = "DBQ=c:\data\clwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}"
   [Microsoft Sql Server]
   constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
   [二]相似函数(举例)
   [1]DATEDIFF(datepart, startdate, enddate)
   其中“datepart”参数可选项如下:
   设置 描述
   [Microsoft Access]
   年 yyyy
   季度 q
   月 m
   一年的日数 y
   日 d
   一周的日数 w
   周 ww
   小时 h
   分钟 n
   秒 s
   [Microsoft Sql Server]
   year yy, yyyy
   quarter qq, q
   month mm, m
   dayofyear dy, y
   day dd, d
   week wk, ww
   hour hh
   minute mi, n
   second ss, s
   millisecond ms
   基本上差不多,但注意的是在写的时候,
   [Microsoft Access]要加引号,如:datediff('d',enddate,'2004/08/01')
   [Microsoft Sql Server]则不需要,如:datediff(d,enddate,'2004/08/01')
   [2][Microsoft Access]中可用如cstr等转数据类型函数,而
   [Microsoft Sql Server]中则用convert或cast函数,如:
   convert(varchar,[amount])等。
   [3][Microsoft Sql Server]
   取当前时间用getdate等等...
   [三]语句
   [Microsoft Sql Server]
   可以用
   CASE
   WHEN THEN
   WHEN THEN
   ...
   ELSE
   END
   语句,而
   [Microsoft Access]
   不支持。
   [Microsoft Access]也不支持between语句
   [Microsoft Sql Server]则可以这样写:
   [date] between @date1 and @date2
   [四]查询表
   [Microsoft Sql Server]
   可三个及以上表join查询,而
   [Microsoft Access]
   好像只能两个表联接查询(待权威确认),
   而且[Microsoft Sql Server]可用“*=”和“=*”连接符。[五]除零问题
   [Microsoft Access]
   在碰到除数为零时,自动丢掉相关记录,而
   [Microsoft Sql Server]
   则会报错,且查询中止。删除代码:
   [Microsoft Access]
   可以这样写:delete * from [table]
   [Microsoft SQL Server]
   只能这样写:delete from [table]
   多*会报错
   当前日期:
   [Microsoft Access]
   用date()
   [Microsoft SQL Server]
   用getdate()如果数据库可能会更换类型的话,可以
   在ASP代码中加上如这样:
   if inStr(constr, "Microsoft Access") > 0 then
   sqlstr=[Microsoft Access][sql代码]
   else
   sqlstr=[Microsoft Sql Server][sql代码]
   end if
   (constr--连接字符串)
   这样即使改了数据库,也不用改数据库查询更新代码了。
   再加:access中有true、false的字段记录,而sql里只有smallint,对应如果在access里有“字段名=true”的,在sql里要改成“字段名=1”
   网上大部分的免费asp程序使用的是access数据库。但是access数据库作为一个中小型的单机数据库系统,在承担访问量、数据量大的网站应用时,往往就不堪重负了。一般认为,超过50M的access数据库性能就开始明显下降,超过100M以后,出错、运行慢的问题会更加突出。尽管可以如动网7.0以后那样,从程序的角度尽量优化以图提高性能,但是不能从根本上解决问题。

 
信息推荐
资讯中心 | 电子商务 | 搜索营销 | 设计学院 | 中医养生 | 养生保健 | 节日祝福 | 民俗文化 | 奇闻趣事
建站知识 | 人世百态 | 网站导航 | 传统节日 | 搜索热点 | 星座运势 | 趣闻轶事 | 祝福的话 | 短信大全
© 2023 QicaiSpace.Com