我在上一篇日志中记录了升级sql2005以来的种种问题,其中有一条是关于“升级到2005后,原来的sql语句执行出错的解决办法。”,当时我发现自己原来运行正常的sql语句,在2005中只要用rs更新数据库就出错,找了很多资料后发现:只要将sql的连接语句改为“provider=sqloledb.1”,即OLE/DB方式就可以了。
于是很自得,以为sql2005已经舍弃了效率相对低下的ODBC连接方式。但是随着对sql2005的了解的逐步深入,对自己的心得不禁怀疑起来。还没等我仔细思考这个问题时,新的问题又来了:
在oblog中删除记录时,系统提示“在 sysservers 中找不到服务器 'WZMS-DB2008'”。请执行 sp_addlinkedserver 将该服务器添加到 sysservers。 ”
我的 第一反应是:oblog是不是支持sql2005呢?马上联系官方专员,对方居然告诉我服务期已经满一年,需要重新购买服务云云。想不到小小的oblg公司比微软还牛!我当然不会再次花钱购买服务,自己上网找资料去,还不信自己解决不了这个问题。
网络上类似遭遇的人也不少,可是没有一个求助的帖子能得到有效解决。根据现有的资料分析,基本可以肯定是我更改了sql服务器的计算机名引起的。执行一些牛人提供的命令,如:“sp_dropserver '原来的服务器名' ”、“sp_addserver '现在的服务器名' ”、“sp_serveroption '现在的服务器名','data access', 'true' ”,等等。sql2005的错误提示变成了:“此游标不包括正在修改的表,或该表不能通过此游标更新。”
检查asp语句,发现只要是调用adodb.recordset的delete方法就出错,再次经历了漫长的调试过程,始终无法解决问题。最后还是听从某网友的劝告:重新安装sql2005!
花了3个小时,重新安装sql2005,附加大大小小十多个数据库,删除用户,重建用户,一次次地重复这些繁琐的操作,故障最终解决。并且令我哭笑不得的是,重装sql后,使用odbc方式连接数据库,原系统也能正常运行了。
吃一堑长一智:sql2005在安全上要求更高,安装sql服务后,千万不要修改计算机名称了啊!
参考二转载自:http://www.01ruodian.com/article/show.php?itemid=2647
上面的说的挺有道理来着,但我还没尝试,不评价先,谁试了成功告诉我~