sql server 2005中IMAGE类型的BUG问题

目标:在sql server 2005数据库上筛选出那些有照片的员工

由于客户之前的数据库是sql server 2000,定义的photo字段的数据类型为image,

在sql 2005数据库上,用 select * from ephoto where photo is not null 时出现一直在查询的情况,

也就是说,我无法筛选出那些有照片的员工的信息!

查询资料才发现,sql 2005之后用 VARBINARY(MAX) 数据类型来替代 image 数据类型,

那么我猜sql 2005对image 字段的查询是有问题的,于是在该表中新建一个字段 photo_1 ,数据类型用 VARBINARY(MAX)

然后 把该表中 photo字段中的数据更新到photo_1字段中,然后再执行 select * from ephoto where photo_1 is not null 这样就能筛选出那些有照片的员工的信息。

但发现个别记录的photo_1 存着0x,故最好用如下语句来筛选:select badge from ephoto where datalength(photo_1)>0

之后,用sql server 2008登陆进去直接用select * from ephoto where photo is not null 语句也能查询出来了。

原文地址:https://www.cnblogs.com/lijy/p/4068962.html