当前位置: 首页 > 科技观察

访问SqlServer问题实例讲解

时间:2023-03-20 17:34:55 科技观察

今天作为毕业设计,帮同学修改了一个老系统。这个系统的技术绝对落后于asp+access。这位同学为了满足老师的接受,编程不是很好,也是在最后一刻才想到开始做最后的设计,于是找到了我。我看了一下他从哪里弄来的代码,跑了一下,还在跑,过两天程序就录用了。没时间把asp改成asp.net,所以建议换个数据库算了,所以我决定转换访问sqlserver。看似公司的产品变成了很多问题。总结如下。首先说一下如何传输数据,打开sqlserver的企业管理器,创建一个表,然后右键那个表,点导入数据,然后选择数据源(这个是access的mdb文件),全部next的方式,基本没有问题,数据是这样导入的,但是问题没那么简单,sqlserver和access的机制很不一样1,因为sql2000没有自动编号,所以你的字段setwithautonumbering会变成非空字段,需要手动修改这些字段,选择他的mark为1,increment为1,2。另外ACCESS2000转SQL2000后,原来的属性yes/nofield会转为Non-emptybit,此时必须修改为你想要的属性;3、另外,大家要注意时间功能的把握。ACCESS和SQL之间有很多不同之处。ACCESS对MSSQL数据库的一些经验1ACCESS数据库中自动编号类型转换时,sqlserver没有设置为自动编号类型。我们需要在SQL创建语句中加入identity来表示自动编号!2、转换的时候,与日期相关的字段,SQLSERVER默认是smalldatetime类型,我们最好改成datetime类型,因为datetime类型的范围比smalldatetime类型大。我遇到过这种情况,使用smalldatetime类型时,转换失败,使用datetime类型时,转换成功。3、操作两个数据库的sql语句不一样,例如:删除ACCESS数据库中的记录时使用:delete*fromuserwhereid=10,而使用:deleteuserwhereid删除SQLSERVER数据库=10.4.日期函数不同。在ACCESS数据库的处理中,可以使用date()、time()等函数,而在SQLSERVER数据库的处理中,只能使用datediff、dateadd等函数,不能使用date()、time()等功能。5、在ACCESS数据库的处理中,有些VB的函数,如cstr()函数,可以直接在sql语句中使用,而不能在SQLSERVER数据库的处理中使用。