我刚刚学数据库开发,用的数据库是SQL Sever 2005 express(就是VS2008自带的那个)
然后我建了一个表XXXX,这个表里所有的key都是中文写的,开始还没啥问题,可是后来加多了就不行了,大概是说超出允许的大小了,具体的错误见下面。'XXXX' table
- Unable to modify table.  
Creating or altering table 'XXXX' failed because the minimum row size would be 10106, including 49 bytes of internal overhead. This exceeds the maximum allowable table row size of 8060 bytes.有什么办法可以解决这个问题吗?谢谢了!难道全部重写成英文吗?工作量太大了!而且到时候binding也会很不方便。

解决方案 »

  1.   

    折分表,或是用text列,并修text in row
      

  2.   

    EXPRESS版本是有限制的 估计你得返工了
      

  3.   

    不用你可以加一列,id 自曾长的!为key!
      

  4.   

    贴些关于数据库的规范吧 
    --最大值     
      对象   sql   server   7.0   sql   server   2000     
      批处理大小   65,536   *   网络数据包大小1   65,536   *   网络数据包大小1     
      每个短字符串列的字节数   8,000   8,000     
      每个   text、ntext、或   image   列的字节数   2   gb-2   2   gb-2     
      每个   group   by、order   by的字节数   8,060         
      每个索引中的字节数   900   9002     
      每个外键的字节数   900   900     
      每个主键的字节数   900   900     
      每行字节数   8,060   8,060     
      存储过程源文本中的字节数   批处理大小之较小者或者   250   mb   批处理大小之较小者或者   250   mb     
      每个数据表的聚集索引数   1   1     
      group   by、order   by   中的列数   只受字节数限制       
      group   by   with   cube   或   with   rollup   语句中的列数或表达式数目   10       
      每个索引的列数   16   16     
      每个外键的列数   16   16     
      每个主键的列数   16   16     
      --每个基础数据表的列数   1,024   1,024     
      --每个select   语句的列数   4,096   4,096     
      --每个insert   语句的列数   1,024   1,024     
      每个客户端的连接个数   已配置连接的最大值   已配置连接的最大值     
      数据库大小   1,048,516   tb3   1,048,516   tb3     
      每个   sql   server   实例的数据库个数   32,767   32,767     
      每个数据库的文件组个数   256   256     
      每个数据库的文件个数   32,767   32,767     
      文件大小   32   tb   32   tb     
      文件大小   4   tb   32   tb     
      每个数据表的外键表引用   253   253     
      标识符长度   128   128     
      每台计算机的实例数   暂缺   16     
      包含   sql   语句的字符串长度   65,536   *   网络数据包大小1   65,536   *   网络数据包大小1     
      每个连接的锁数   每个服务器的最大锁数   每个服务器的最大锁数     
      每个   sql   server   实例的锁数   2,147,483,647   
      sql   server   40%   的内存   2,147,483,647   
      sql   server   40%   的内存     
      嵌套存储过程层数   32   32     
      嵌套子查询   32   32     
      嵌套触发器层数   32   32     
      每个数据表的非聚集索引个数   249   249     
      sql   server   实例中同时打开的对象个数4   2,147,483,647   2,147,483,647     
      每个数据库中的对象个数   2,147,483,6474   2,147,483,6474     
      每个存储过程的参数个数   1,024   1,024     
      每个数据表的   reference   个数   253   253     
      每个数据表的行数   受可用存储资源限制   受可用存储资源限制     
      每个数据库的数据表个数   受数据库中的对象个数限制4   受数据库中的对象个数限制4     
      每个   select   语句的数据表个数   256   256     
      每个数据表的触发器个数   受数据库中的对象个数限制4   受数据库中的对象个数限制4     
      每个数据表的   unique   索引个数或约束个数   249个非聚集索引和   1   个聚集索引   249个非聚集索引和   1   个聚集索引     
        
      sql联机,索引中输入:   
      规范-sql   server   对象   
        
      可以得到更多信息
      

  5.   

    拆分表的方法,到时候我做dataBinding怎么做呢?本来我只用把datasource设到这个表上然后拖拽就可以了,可是拆分了这样就行不通了吧?改英文的话,一来工作量太大,二来dataBinding我还得改回中文,三我已经binding了很多东西,那些岂不是又得重做,四来万一改成英文还是太大怎么办?为什么不推荐中文呢?是不是我换成非EXPRESS版本就可以了?另外,标题不是键太多,是字段太多。
    谢谢大家了
      

  6.   

    feixianxxx,你的规范是哪里来的?从数据库里检索出来的还是?这是统一的还是每种数据库不同的?
      

  7.   


    我上次搜集的 应该是他们从联机丛书和MSDN上结合出来的。。
      

  8.   

    是别人总结的 对MSSQL 基本适用
      

  9.   


    那这么说的话我换成非express版本岂不是也不行了?