我想修改表内的一条记录,但提示以下错误
=========================
错误源:.NET.SqlClient Data Provider
错误信息:将截断字符串或二进制数据。
=========================
而要修改的记录包含是有TEXT字段的,当TEXT字段本身内容比较多的时候,无论我修改改记录的任何一个字段同样会出上面的错,但用语句修改是没问题的,但就不能直接打开SQL2008直接修改,但SQL2000 是允许的
有什么办法解决呢?没次修改一写小东西都要写语句很麻烦的.
10 个解决方案
#1
convert(varchar(max),列名)
#2
你的表 --右键-->编辑200行 ,筛选出你的记录
#3
不过还是要先了解是哪里出现了:错误信息:将截断字符串或二进制数据。 否则用界面也不一定成功
#4
应该就是那个TEXT 类型的字段出问题,当text类型字段内容比较少或者没内容的情况下是可以直接修改的
#5
可能是你修改的数据长度大于数据库字段长度
#6
text的长度很大,但是有很多使用限制,不建议后续使用
#7
但对于信息发布的内容,不同text还能用什么类型呢?特别是用户在WORD 那里拷贝过来的,带了大量标记的,
用代码删除那些标记 用户又不愿意重新排版了
===========================================
现在发现记录连直接删除也提示这个错误的,
#8
varchar(max)/nvarchar(max),这是微软推荐的,后续不再支持text/ntext类型。
#9
我已经用varchar(max)/nvarchar(max),转换过了,但还是提示错误,应该是不支持text/ntext类型。了
#10
如果列不多,那先把这个表导到一个临时表里面,然后重建源表,重建时把那些列改为varchar(max)/nvarchar(max),然后把数据倒回来,倒回来的过程中,把列显式convert(varchar(max),列名)这样处理
#1
convert(varchar(max),列名)
#2
你的表 --右键-->编辑200行 ,筛选出你的记录
#3
不过还是要先了解是哪里出现了:错误信息:将截断字符串或二进制数据。 否则用界面也不一定成功
#4
应该就是那个TEXT 类型的字段出问题,当text类型字段内容比较少或者没内容的情况下是可以直接修改的
#5
可能是你修改的数据长度大于数据库字段长度
#6
text的长度很大,但是有很多使用限制,不建议后续使用
#7
但对于信息发布的内容,不同text还能用什么类型呢?特别是用户在WORD 那里拷贝过来的,带了大量标记的,
用代码删除那些标记 用户又不愿意重新排版了
===========================================
现在发现记录连直接删除也提示这个错误的,
#8
varchar(max)/nvarchar(max),这是微软推荐的,后续不再支持text/ntext类型。
#9
我已经用varchar(max)/nvarchar(max),转换过了,但还是提示错误,应该是不支持text/ntext类型。了
#10
如果列不多,那先把这个表导到一个临时表里面,然后重建源表,重建时把那些列改为varchar(max)/nvarchar(max),然后把数据倒回来,倒回来的过程中,把列显式convert(varchar(max),列名)这样处理