从mssql2000到mssql2008的坎坷路

自己开发用的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

。。。。。。。。



[本日志由 春暖花开 于 2009-09-19 10:22 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 658
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭