update table set outdate=getdate() where id='0811010718' --这条语句就报错, 将截断字符串或二进制数据。而 update table set outdate=getdate() where id='0802035121' --这条语句就不报错,这是为什么呢?id是主键有索引
1.outdate是标准的datetime类型 2.ID为'0802035121'这条记录内在 select * from table where id='0802035121' 可以找到
把原始的update语句贴出来。最好贴点相关数据。报这个错误,一般就是赋值超过了该列定义的长度。
update table --你这块的table应该是表名,难道你的表名是table?是的话,改成这[table] set outdate=getdate() where id='0811010718' --这条语句就报错, 将截断字符串或二进制数据。而 update table set outdate=getdate() where id='0802035121' --这条语句就不报错,这是为什么呢?
select * from tb where id='0811010718'
select * from tb where id='0802035121'
set outdate=getdate()
你定义的 OUTDATE 字段长度 比 getdate() 数值要短。
1.因为outdate设的不是datetime类型(可能是varchar(10)之类的),所以赋值的时候会截断
2. ID为'0802035121'的记录不存在,Update语句并没有更新任何一行数据,所以不报错。
2.ID为'0802035121'这条记录内在
select * from table where id='0802035121'
可以找到
set outdate=getdate()
where id='0811010718' --这条语句就报错, 将截断字符串或二进制数据。而
update table
set outdate=getdate()
where id='0802035121' --这条语句就不报错,这是为什么呢?