SQL Server 2005和SQL Server 2000中bit类型的区别

上次想把项目的数据库由SQL Server 2005转换为SQL Server 2000结果碰到这么一个问题.在连接SQL Server 2000后,在将一个bit类型的数据转换做更新是发生数据类型转换失败.

问题回放:

先新建一张表:

01

插入两条测试数据:

03

在SQL Server 2005中做更新操作:

02

两条更新全部通过.

在SQL Server 2000中做更新操作:

04 

第二条语句不同通过,数据类型转换失败.由此可见在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。

另外还有一个现象:

1

在SQL Server 2005的返回所有行中,自己手工添加bit类型的数据时,只能填写字符串值,也就是true或者false,而在SQL Server  2000中会有一个自动转化的功能,比如你填写0或者false,会自动识别为0.

原文地址:https://www.cnblogs.com/liszt/p/1927117.html