1.建表,报警告,行最大大小超过8060,INSERT和UPDATE可能失败
2.插入数据,报超过8060,插入失败
3.用ALTER TABLE ALTER COLUMN COL_NAME VARCHAR(MAX)把所有字符串列全改成VARCHAR(MAX),其它列长度加起来共320
4.插入数据,报超过8060,插入失败
就这样,被华丽丽的刷了,虽然现在已经解决了,但还是郁闷。
第一个详细解释原因的给250技术分,谨以此分献给MS
------解决方案--------------------
只对于2005 或者以上版本
1、警告是因为有char列存在,因为char 是定长的,所以他会去计算,varchar 是非定长的只要实际存储的数据没有超过这个上限, 就不会有问题,别且这个8060 不会去考虑varchar,搞成0来统计
- SQL code
create table test1( a varchar(1000), b char(8000), c char(53), d varchar(1000));go--这个只会警告--但是下面的就会报错create table test2( a int, b char(8000), c char(53), d varchar(1000));go