none
这是不是SQLServer2008的一个bug? RRS feed

  • 问题

  • 操作系统:Windows Vista SP2 中文版

    数据库:SQLServer2008 简体中文企业版

     

    问题是这样的:

       前提描述:在我的一个数据库中有一些表,其中有一个表的名称是mCam;在这个数据库的存储过程中,有一个存储过程的语句中有这样的引用:"delete from mCAM",请注意此处的mCAM为后三个字母大写。

       问题如下:当我对这个数据库执行“生成脚本”的操作时,在生成的脚本中总是缺少了创建mCam表的脚本,不论我在生成选项中怎么调整。。。后来我意识到可能和存储过程中的表名称大写有关系,修改了存储过程就ok了。但。。。问题是,上述操作,换到SQLServer2005下就没有出任何问题。

       请高手指点一下,到底是什么问题?

    2010年6月8日 3:46

答案

全部回复

  • 那跟你的数据库排序规则有关系

    你的SQL Server2008对应的库的排序规则是大小写敏感

    反之 你的2005则是不敏感的

     

    排序规则的知识点 :http://blog.csdn.net/feixianxxx/archive/2009/10/05/4633610.aspx

    • 已标记为答案 davehma 2010年6月8日 6:10
    2010年6月8日 4:37
  • 谢谢回复,帖子里忘了说明了(当时想到排序规则的可能性了,但又觉得可能没关系,就没有说明),我在SQLServer2008和SQLServer2005中,对数据库应用的的排序规则都是“Chinese_PRC_CI_AS”,CI应该就是不敏感吧。。?
    2010年6月8日 4:51
  • sql 2008 + sp1 下测试没有发现楼主提到的问题.

    即使先建存储过程, 再建表 (这样 sp_depends 查不到依赖关系), 也会生成建表的脚本.

    所以排序规则导致区分大小写的可能性最大. (也不排除是 bug,  但 sp1 已经修正了)

    • 已标记为答案 davehma 2010年6月8日 6:10
    2010年6月8日 4:51
  • 谢谢指教,我等一下装上sp1再试试看。:)
    2010年6月8日 6:08