当前位置: 代码迷 >> Sql Server >> 被MSSQL耍了解决办法
  详细解决方案

被MSSQL耍了解决办法

热度:49   发布时间:2016-04-27 13:13:14.0
被MSSQL耍了
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
  相关解决方案