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的默認语言?到底是什么意思
请问:这里面说的记录是指一表中一行各字段的大小总和?还是说一行中每个字段的大小不能超过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的默認语言?到底是什么意思
2、转化为 char不会,转化为 varchar 会
3、没什么区别,就是 2000 的数据引擎
4、默认语言就是指默认的编码,比如 中文是 gb2312
3、msde是一个引擎,
4、也就是该数据库使用的语言,可以使用exec sp_config 'default language' [id]来更改
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)你已经指定长度了
set @a='gf'
set @b=@a
select @b
select datalength(@b)
select datalength(@a)
-----------------
----
gf(所影响的行数为 1 行)
-----------
2(所影响的行数为 1 行)
-----------
4(所影响的行数为 1 行)明明是4个字节转为2个字节为什么就不会截断呢郁闷