仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 614|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之将ACCESS转化成SQL2000要注重的成绩

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这是无法比较的,因为基于云的数据库提供了不同的模式。关键是要通过围绕云计算产品来包装其他增值服务以适应不断变化的市场条件:这就是DBaaS。access|成绩良多伴侣想用SQL2000数据库的编程办法,可是却又苦于本人是学ACCESS的,对SQL只是一点点的懂得罢了,这里我给人人供应以下参考---将ACCESS转化成SQL2000的办法和注重事项
一,起首,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有实验过,但愿人人多多实验,一定是有举措的;
二,转换的办法
1,翻开”把持面板“下”办理工具“中的”数据库源“;
2,按”增加“增加一个新的数据源,在选择栏里选”DriverdomicrosoftAccess
(*.mdb)”,完成后将呈现一个框,

在”数据库源“内里输出你想写的称号,我取名叫“ABC”,申明不必要填,接着,按上面的选择,寻觅你的数据库地点和选中(注重,请先备份本人的ACCESS数据库),然后断定。
数据源在这里建好了,剩下转换了。

3,翻开SQL2000企业办理器,进进数据库,新建一个空的数据库“ABC”;
4,选择新创建的数据库,按鼠标右键,选择“一切义务”下“导进数据”,按“下一步”持续;
5,在数据库源下拉但当选择”DriverdomicrosoftAccess(*.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是有良多分歧的.


4、相干的字段成绩
1.ACCESS的数据库中的主动编号范例在转化时,sqlserver并未将它设为主动编号型,我们需在SQL创立语句中加上identity,暗示主动编号!
2.转化时,跟日期有关的字段,SQLSERVER默许为smalldatetime型,我们最好将它变成datetime型,由于datetime型的局限比smalldatetime型年夜。我碰见这类情形,用smalldatetime型时,转化失利,而用datetime型时,转化乐成。
3.对此两种数据库举行操纵的sql语句不全不异,比方:在对ACCESS数据库举行删除记录时用:"delete*fromuserwhereid=10",而对SQLSERVER数据库举行删除是用:"deleteuserwhereid=10".
4.日期函数不不异,在对ACCESS数据库处置中,可用date()、time()等函数,但对SQLSERVER数据库处置中,只能用datediff,dateadd等函数,而不克不及用date()、time()等函数。
5.在对ACCESS数据库处置中,sql语句中间接能够用一些VB的函数,像cstr()函数,而对SQLSERVER数据库处置中,却不克不及用。
5、相干语句成绩
主动增添字段必要重写。在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)

在mssqlserver中,有很多保存字,在access中是没有的,当你把数据导进到mssql的时分,成绩就出来了。mssql在导进的时分,会主动给这些字段(包含数据库中的表名)加上“[字段名]”,因而,你必需修正你的剧本,把响应的字段名字(大概表名字)加上中括号,或改动字段名字为不是mssql的保存字

在用access关于工夫的利用,人人喜好利用“select*fromaaaawhiletime="&now()”如许的sql语句,但是,在mssql中没有“now()”这个函数,而是利用“getdate()”,以是,一切的sql语句中的“now()”必需换成“getdate()”。

日期函数不不异,在对ACCESS数据库处置中,可用date()、time()等函数,但对
SQLSERVER数据库处置中,只能用datediff,dateadd等函数,而不克不及用date()、time()等函数。

转化时,跟日期有关的字段,SQLSERVER默许为smalldatetime型,我们最好将它变成datetime型,由于datetime型的局限比smalldatetime型年夜。偶然用smalldatetime型时,转化失利,而用datetime型时,转化乐成

isnull(rowname)要改成rowname=null

CursorType要改成1,也就是翻开数据库时要给出第一个数字参数为1,不然纪录大概
显现不完全

备注范例要经由过程cast(columnasvarchar)来利用

true/false范例不克不及利用,要变成1/0

对此两种数据库举行操纵的sql语句不全不异,比方:在对ACCESS数据库举行删除记录时用:"delete*fromuserwhereid=10",而对SQLSERVER数据库举行删除是用:"deleteuserwhereid=10".

在对ACCESS数据库处置中,sql语句中间接能够用一些VB的函数,像cstr()函数,而对SQLSERVER数据库处置中,却不克不及用

在access的sql语句中的工夫利用变量查询的时分,人人一样平常利用"select*fromaaaawhiletime=#"&变量名&"#",在mssql中是不可的,他的语法是“select*fromaaaawhiletime="&变量名&""”。(意义是让你把日期工夫变量当做字符串来利用,呵呵~~~)

本来ASP里的“DELETE*FROM……”要改成“DELETEFROM……”

有大概rs.update失利,修正成update表名set字段=‘值’如许经由过程(碰到的情形,提醒为:
MicrosoftOLEDBProviderforSQLServer毛病80040e38
悲观并发反省失利。已在此游标以外修正了该行。
/Admin_ClassOrder.asp,行164)

access内里除法可使用""大概"/",MSSQL内里只能利用"/"

你碰到的问题可能已经在社区中被别的人已经问过,即使没有MySQL学习教程,你也可以提出问题或通过Google来搜索答案。社区的相关负责人士:“MySQL社区是活跃、友好和内容渊博的。”
透明 该用户已被删除
沙发
发表于 2015-1-19 22:52:13 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-25 21:33:20 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
再见西城 该用户已被删除
地板
 楼主| 发表于 2015-2-4 03:54:08 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
谁可相欹 该用户已被删除
5#
发表于 2015-2-9 15:20:15 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
再现理想 该用户已被删除
6#
发表于 2015-2-27 08:37:57 | 只看该作者
还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
小女巫 该用户已被删除
7#
发表于 2015-3-8 23:50:24 | 只看该作者
其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。
蒙在股里 该用户已被删除
8#
发表于 2015-3-16 19:05:08 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
若天明 该用户已被删除
9#
发表于 2015-3-22 23:55:28 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表