上次想把项目的数据库由SQL Server 2005转换为SQL Server 2000结果碰到这么一个问题.在连接SQL Server 2000后,在将一个bit类型的数据转换做更新是发生数据类型转换失败.
问题回放:
先新建一张表:
插入两条测试数据:
在SQL Server 2005中做更新操作:
两条更新全部通过.
在SQL Server 2000中做更新操作:
第二条语句不同通过,数据类型转换失败.由此可见在SQL Server 2005中是支持将字符串类型的值转换为bit值的.并且在MSDN上面看到的也的确如此:
可以取值为 1、0 或 NULL 的整数数据类型。
Microsoft SQL Server 2005 Database Engine 优化了 bit 列的存储。如果表中的列为 8 bit 或更少,则这些列作为 1 个字节存储。如果列为 9 到 16 bit,则这些列作为 2 个字节存储,以此类推。
字符串值 TRUE 和 FALSE 可以转换为以下 bit 值:TRUE 转换为 1,FALSE 转换为 0。
另外还有一个现象:
在SQL Server 2005的返回所有行中,自己手工添加bit类型的数据时,只能填写字符串值,也就是true或者false,而在SQL Server 2000中会有一个自动转化的功能,比如你填写0或者false,会自动识别为0.