SQL Server 中BIT类型字段增删查改那点事
2017-09-11 09:16
393 查看
原文:SQL Server 中BIT类型字段增删查改那点事
话说BIT类型字段之前,先看“诡异”的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2
当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的
如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了。
废话不多,直接上代码看结果就好了。
先建一个测试表
bit类型字段的insert
按照常规来说,bit类型字段只能存0或者1,所以直接inert 0或者1当然是没有问题的。
因为bit代表的是真假值,在insert时候赋字符串的false或者true也是没有问题的
当然文本仅仅支持false或者true这两个字符串,其他都会报错,从报错中也会发现,在insert的时候有一个隐式转换
对于数值型的数据:当执行插入一个非0或者1的数值的时候,也是会插入成功的,但是(非0的值)插入后的值被隐式转换为1了
插入非0的数值,均被转换为1,也就是true
bit类型字段的更新操作
执行更新操作也一样,如果更新的是数值,更新的字符串只能为false或者true
如果更新的是数值,并且这个数值不是0(是整数或者负数),相当于更新bit字段类型为1
话说BIT类型字段之前,先看“诡异”的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2
当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的
如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了。
废话不多,直接上代码看结果就好了。
先建一个测试表
CREATE TABLE TestBIT ( Id INT IDENTITY(1,1), BitColumn BIT )
bit类型字段的insert
按照常规来说,bit类型字段只能存0或者1,所以直接inert 0或者1当然是没有问题的。
因为bit代表的是真假值,在insert时候赋字符串的false或者true也是没有问题的
当然文本仅仅支持false或者true这两个字符串,其他都会报错,从报错中也会发现,在insert的时候有一个隐式转换
对于数值型的数据:当执行插入一个非0或者1的数值的时候,也是会插入成功的,但是(非0的值)插入后的值被隐式转换为1了
插入非0的数值,均被转换为1,也就是true
bit类型字段的更新操作
执行更新操作也一样,如果更新的是数值,更新的字符串只能为false或者true
如果更新的是数值,并且这个数值不是0(是整数或者负数),相当于更新bit字段类型为1
相关文章推荐
- SQL Server 中BIT类型字段增删查改那点事
- 关于SQL Server中bit类型字段增删查改的一些事
- SQL Server入门-增删改查约束建库建表
- SQL SERVER 数据库查询表和字段信息语句
- SQL Server将字段默认值设置为当前时间
- SQL Server 对 Image字段进行操作
- SQL Server 表字段值转换成字段名称(二)
- sql server多行数据(一列)转换成一个字段
- SQL Server 下读取 表/字段 的说明备注信息
- SQL server对Xml字段的操作
- sql server 2000 单主键高效分页存储过程 (支持多字段排序)
- SQL Server对比两字段的相似度(函数算法)
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
- sysobjects表的字段的意思(SQL SERVER)
- SQL SERVER 2008数据库表中修改字段后不能保存
- 使用SqlDependency监测SQL Server 2005/2008字段改动时的SQL语法及相关注意事项
- SQL Server允许重复空字段不空字段值唯一(转载)
- SQL Server中打印统计某字段有相同数据的行数
- SQL Server 基本操作之增删改查
- SQL Server表中某些字段含有水平制表符、换行符、回车符、反斜杠的解决办法