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

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

 

问题回放:

先新建一张表:

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

插入两条测试数据:

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

在SQL Server 2005中做更新操作:

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

两条更新全部通过.

 

在SQL Server 2000中做更新操作:

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

第二条语句不同通过,数据类型转换失败.由此可见在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和SQL Server 2000中bit类型的区别

 

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

转载于:https://www.cnblogs.com/liszt/archive/2011/01/06/1927117.html