从mssql2000到mssql2008的坎坷路
作者:春暖花开 日期:2009-09-19
自己开发用的mssql2000数据库,而虚拟主机则是用的mssql2008.
不知道是不是对方的原因,一直无法读取数据库,困扰我好久。
不过今天终于被我解决了,想起来还真是坎坷啊(主要是没用过这么高级的东东。。-_-||)
第一次发现这个问题时,问客服,说是已经帮我附加,并告诉我说2000的不能用在2008上。汗颜。。
要是微软的东西不能向下兼容的话,那还真是个天大的笑话了。。。崩塌
既然对方客服这么。。 所以决定自己搞
下了个Sqlserver2008Client,远程连接到虚拟主机上的SQL服务端。
不看不知道,一看吓俺一跳。。。。只看到了一个空数据库,里面啥都没有。我估计是没有帮我附加。
由于我的帐号并不是sa,所以不能进行远程的附加或还原数据库操作。只能原始的执行sql语句。
从本地2000上生成建表和视图、表数据的sql。然后屁颠屁颠的跑客户端进行sql操作。一切顺利,sql执行完毕,没有报错。网页上读取数据正常。
然后进行网页update、insert操作。结果都失败了,汗。。。哪出问题了
忽然想起来,2000生成建表的sql语句并不包含主键等定义。。。。一看果然,嘿咻嘿咻的每个table修改主键。由于08Client的可视化操作是在令人失望,19个table改下来,估计比2000的修改多花费10分钟!
改好后,继续update、insert测试。测试OK,但是却无法读取新建数据。数据是从view里面读取的,在08Client里面一查,发现问题比较严重。table更新了,但是view没有更新。
都是客服的忽悠。。。。说是数据操作都是在dbo里面操作的(08Client里面会显示2个计划,dbo以及lovespring),我之前由于被误导,所以一直没在意lovespring里面的内容。既然dbo里面的table和view都没有问题,那么lovespring里面的设置会不会影响呢?
展开lovespring数据库,看到一个很让人吃惊的状况-----view被添加到table里面了,也就是说,在这个库里面,没有view !约莫问题就在这边。
删除table里面的views,再打开sql编辑器,重新输入建view的语句,并把dbo改为lovespring,commit。reflush view,哈哈。view全出来了。
重新测试update、insert。view里面的更新数据都读到了,o yeah~~搞定。
总结:
1、从2000数据库导出table的建表sql,只包含栏位及数据类型,并不包括索引及默认值、自增等其他信息。
2、从2000数据库导出的table的建表、view的sql,指向的database是dbo而不是你的数据库名。
3、2008Client里面实际操作用到的database是你建的数据库名,而不是dbo
。。。。。。。。
上一篇
下一篇


文章来自:
Tags:
相关日志:




