NVARCHAR数据类型一个字符占两个字节。SQL Server 2000中,一条记录最大能保存8060字节数据,楼主建的表,最大要求一条数据记录保存20,000个NVARCAHR类型的UNICODE字符,也就是40,000字节,超过了SQL Server的限制。当然,如果使用insert语句插入的实际数据长度在4030个字符以内,是可以插入的。如果记录需要保存超过8060字节的数据,建议楼主使用ntext数据类型,最大可以保存2GB的数据。

解决方案 »

  1.   

    1.sql server 在存储数据的时候是以页为单位的
    2。一个页8k即8*1204个字节
    3。出去页头和页尾,剩下8060个字节
    4。行不能跨页存储
    5。所以一行最大为8060个字节
    6。即你所有的列加起来不能超过8060个字节
      

  2.   

    1。这个表有20个字段,每个字段我都用nvarchar(1000),====超过了8060
    2。字段类型小一点nvarchar(100)
    3。要么用ntext
      

  3.   

    ntext怎么长度只有16啊? 这怎么容下500个汉字啊!
      

  4.   

    另外,如果是只有500个汉字,完全可以用Nvarchar,将来操作的话也方便些。
      

  5.   

    ntext:可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。
      

  6.   

    ntext:可变长度 Unicode 数据的最大长度为 2^30 - 1  (1,073,741,823) 个字符。
      

  7.   

    本贴最后一问,得到答案就结贴了.
    用了ntext,录入数据成了这样的东西,但通过程序能正常显示!
    问:ntext不是存在数据库里,而是以文件的形式存在硬盘里吗?{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
    \viewkind4\uc1\pard\lang2052\f0\fs18\'be\'ad\'d3\'aa\'b7\'b6\'ce\'a7
      

  8.   

    你输入的数据是怎样的??
    CREATE  TABLE TEST(NAME NTEXT)
    INSERT TEST VALUES(N'中国 北京 上海')
    SELECT * FROM TEST到企业管理器中查询也是中文显示的啊
      

  9.   


    我是用delphi的dateset,用post的方法插入的!