1. 每条记录存储数据的总长度不能超过8060字节,但在实际存储数据时,必须保证单条记录存储的数据的总长度不能超过8060字节,否则数据无法保存(会提示错误“无法创建大小为****的行,该值大于允许的最大值8060)
请问:这里面说的记录是指一表中一行各字段的大小总和?还是说一行中每个字段的大小不能超过8060字节,2. nchar(n)转化为char(n)时假如为纯字符的情况下占用的空间会自动缩减吗
declare @a nchar(2)
declare @b char(2)
set @a='ab'
set @b=@a
select @b  
b的结果跟a一样。
nchar(2)应该占4个字节才对啊,那为什么转为@b(2字节)时不会截断3.MSDE 2000到底和其他SQL版本有什么区别?
看了半天就是没看懂,只知道MSDE 2000是个什么引擎,哎。。基础太差了
4.sql的默認语言
   文章开头还提到sql的默認语言?到底是什么意思

解决方案 »

  1.   

    1. 是每条记录各个字段的总和
    2、转化为 char不会,转化为 varchar 会
    3、没什么区别,就是 2000 的数据引擎
    4、默认语言就是指默认的编码,比如 中文是 gb2312
      

  2.   

    2、不会,使用varchar会。可以使用datalength来查看
    3、msde是一个引擎,
    4、也就是该数据库使用的语言,可以使用exec sp_config 'default language' [id]来更改
      

  3.   

    2. nchar(n)转化为char(n)时假如为纯字符的情况下占用的空间会自动缩减吗 
    declare @a nchar(2) 
    declare @b char(2) 
    set @a='ab' 
    set @b=@a 
    select @b  
    b的结果跟a一样。 
    nchar(2)应该占4个字节才对啊,那为什么转为@b(2字节)时不会截断 
    ---char(N)你已经指定长度了
      

  4.   

    我试了下怎么结果也一样啊declare @a nchar(2),@b varchar(2)
    set @a='gf'
    set @b=@a
    select @b
    select datalength(@b)
    select datalength(@a)
    -----------------
         
    ---- 
    gf(所影响的行数为 1 行)            
    ----------- 
    2(所影响的行数为 1 行)            
    ----------- 
    4(所影响的行数为 1 行)明明是4个字节转为2个字节为什么就不会截断呢郁闷