首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

被MSSQL耍了解决办法

2012-04-27 
被MSSQL耍了1.建表,报警告,行最大大小超过8060,INSERT和UPDATE可能失败2.插入数据,报超过8060,插入失败3.

被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 

热点排行