利用动网提供的论坛程序创建了一个内部论坛。原来,这个论坛是发布在windows2000的iis5上的。他的数据库用的是access。可是,当我将这个论坛迁移到windows2003上以后,发现经常死掉。到网上找了一下,并且咨询了微软的工程师,很多人都认为i这跟他使用access有关。并且,我想在公司内部网站首页增加一个跑马灯来显示论坛中的新帖子,可是,如果继续用access的话,访问起来不是那么方便。于是决定迁移到sql中。第一步:将数据导入sql server
进到sql server企业管理器,新建一个数据库,然后,选择导入数据,选择access数据库作为导入源,导入所有的数据。
第二步:修改数据表
通过这种方式建立的数据表,是没有主键和默认值的,参照原来的access库修改各个表。(这个比较烦,但是一定得做,因为后面的程序中会用到这些默认值)
第三步:修改程序
将站点迁移到相应的服务器,创建新的站点。首先,要改的就是数据库联接.由于access中的一些函数和sql中的一些函数不一样,所以,程序会报错,根据程序的报错信息修改相关的地方。这里主要要修改两个地方:
sql语句中的now()函数:
在access中使用now()函数来获取当前时间,而在sql server中用getdate()函数来获取当前时间。但是,由于原来的程序是采用vb script写的,vbscript中也采用now()函数获取当前时间,所以要小心sql语句中的datediff函数的第一个参数:
在access中datediff的第一个参数用引号,并且只用一个字母来表示比较的部分,而在sqlserver中不需要引号,并且用全称和或者简称来表示,并且简称也是两个字母的。
改完后逐项测试,改正所有的错误(都挺简单的)。
程序就可以正常使用了,前后时间可能花了4个多小时吧。
我想到以下几点:
1、如果,我们要使用access数据库,为了以后迁移方便,我们应该尽量避免使用数据库的函数,而是多用程序语言的函数,在sql语句的外面解决计算问题。如果,不能避免要使用这些数据库函数,我们也应该在代码中设置明显的注释标记,以便于以后迁移。
2、我们在设计程序时候,要充分考虑数据库的迁移的需要,在插入语句、查询语句等语句的时候要尽量采用标准的sql语法,并且要不厌其烦得插入默认值,而不要依赖数据库提供默认值,这样做,对以后的改进可能会有好处。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器