MSSQL教程之ACCESS改成SQL必要注重哪几个中央
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功access看到他人偶然问这个方面的成绩。。因而在各网站总结前先辈高人的几点设法,拿来共享:数据库导进今后,主动增添字段必要重写,一切的数字范例必要增添长度,最好用decimal。
一切的默许值都丧失了。次要是数字范例和日期范例。
一切now(),time(),date()要改成getdate()。
一切datediff(d,time1,time2)要改成datediff(day,time1,time2)
有大概一些true/false范例不克不及利用,要变成1/0。
备注范例要经由过程cast(columnasvarchar)来利用。
CursorType要改成1,也就是翻开数据库时要给出第一个数字参数为1,不然纪录大概显现不完全。
isnull(rowname)要改成rowname=null
ACCESS的数据库中的主动编号范例在转化时,sqlserver并未将它设为主动编号型,我们需在SQL创立语句中加上identity,暗示主动编号!
转化时,跟日期有关的字段,SQLSERVER默许为smalldatetime型,我们最好将它变成datetime型,由于datetime型的局限比smalldatetime型年夜。偶然用smalldatetime型时,转化失利,而用datetime型时,转化乐成。
对此两种数据库举行操纵的sql语句不全不异,比方:在对ACCESS数据库举行删除记录时用:"delete*fromuserwhereid=10",而对SQLSERVER数据库举行删除是用:"deleteuserwhereid=10".
日期函数不不异,在对ACCESS数据库处置中,可用date()、time()等函数,但对SQLSERVER数据库处置中,只能用datediff,dateadd等函数,而不克不及用date()、time()等函数。
在对ACCESS数据库处置中,sql语句中间接能够用一些VB的函数,像cstr()函数,而对SQLSERVER数据库处置中,却不克不及用。
对于update操作,只需要把event中的旧行和新行值对调即可。 从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
页:
[1]