SQL Server 中BIT类型字段增删查改那点事

  

  话说BIT类型字段之前,先看“诡异”的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2
  当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的

  

  如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了。
  废话不多,直接上代码看结果就好了。
  先建一个测试表

CREATE TABLE TestBIT
(
    Id INT IDENTITY(1,1),
    BitColumn BIT
)

按照常规来说,bit类型字段只能存0或者1,所以直接inert 0或者1当然是没有问题的。

因为bit代表的是真假值,在insert时候赋字符串的false或者true也是没有问题的

当然文本仅仅支持false或者true这两个字符串,其他都会报错,从报错中也会发现,在insert的时候有一个隐式转换

  对于数值型的数据:当执行插入一个非0或者1的数值的时候,也是会插入成功的,但是(非0的值)插入后的值被隐式转换为1了
   插入非0的数值,均被转换为1,也就是true

   

   执行更新操作也一样,如果更新的是数值,更新的字符串只能为false或者true

    

   

   如果更新的是数值,并且这个数值不是0(是整数或者负数),相当于更新bit字段类型为1

   

  

  

时间: 2024-10-05 06:44:23

SQL Server 中BIT类型字段增删查改那点事的相关文章

SQL Server中TEXT类型字段值在数据库中追加字符串方法

在数据上我们往往会遇到ntext大文本类型,这种类型如果和 nvarchar类型相加会出现问题,所以有一中方法可以解决这种问题. 使用的sql   函数: TEXTPTR:返回要更新的 text.ntext 或 image 数据的文本指针的值. UPDATETEXT :在适当的位置更改 text.ntext 或 image 列的一部分 WRITETEXT: 来更新和替换整个 text.ntext 或 image 字段 举例: CREATE TABLE [dbo].[aa]( [ID] [int]

.SQL Server中 image类型数据的比较

原文:.SQL Server中 image类型数据的比较 在SQL Server中如果你对text.ntext或者image数据类型的数据进行比较.将会提示:不能比较或排序 text.ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符.不过image也是不支持like比较的.那怎么样对数据库中的图片做比较呢.对于这种大型对象的处理,在Oracle中有有专门的函数DBMS_LOB.COMPARE,而SQLSERVER中没有专门的处理函数,只能通过使用substri

swift中使用CoreData实现增删查改

1.建立CoreData项目 创建项目时勾选 User Core Data 2.创建实体(Entity) 创建项目后,可以看到目录中有一个.xcdatamodeld文件.打开它,点击下方Add Entity按钮即可创建新的实体.这里,我创建了Student尸体,两个属性分别是创建时间data和名字name.完成后点击右侧Show the Data Model Inspector按钮,里面有Name和Class两个选项,分别是实体名称和要生成的类名. 完成后,选择菜单Editor–>Create

[开源]无sql之旅-Chloe.ORM之增删查改

扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询.聚合函数查询.插入数据.删除和更新满足条件的数据等操作. 在上篇文章中, Chloe.ORM 初次对外抛头露面,虽然是在重复造轮子,但还是得到部分园友的支持与认可,LZ非常感谢!上文主要展示 Chloe 的查询方式以及支持的 lambda 写法,本文主题是多表连接查询.插入数据.更新数据.删除数据以

SQL Server中char与varchar数据类型区别

在SQL Server中char类型的长度是不可变的,而varchar的长度是可变的 . 存入数据时: 如果数据类型为char时,当定义一个字段固定长度时,如果存进去数据长度小于char的长度,那么存入数据中数据所占的长度依然为定义字段长度,存入数据格式将变为存入数据加空格: 如果数据类型为varchar时,如果存进去数据长度小于varchar的长度,那么存入数据中数据所占的长度为存入数据长度. 取数据时: 如果数据类型为char时,取出数据需要用trim()去掉多余的空格: 如果数据类型为va

SQL Server中如何把 科学记数法字符串 变为 数字字符串

当我们将Excel的数据导入SQL Server时,如果用SQL Server的字符串类型(VARCHAR和NVARCHAR等)来存储从Excel导入的数字,有时候这些数字会变成科学记数法字符串(例如'1.23E+10'实际上是'12300000000'). 这并不是我们想要的结果,我们希望从Excel导入的数字还是数字字符串,而不是科学记数法. 在SQL Server中我们可以通过这个思路来将 科学记数法字符串 变为 数字字符串: 首先将 科学记数法字符串 转换为 FLOAT类型 接着将 FL

python中列表的增删查改

本文将学习python中对列表中的元素进行增删查改操作以l为例:l=['hello','tomorrow','!']1.增加:(1)在列表末尾增添元素:列表名.append('element') l.append('hello') print(l) 输出:(2)在列表任意位置插入元素:列表名.insert(索引,'element')l.insert(1,"luu's")print(l)输出: 2.删除(1)del 列表名[序号] del l[1] print(l) (2)列表名.pop

Microsoft SQL Server中条件字段是Nvarchar类型的,条件有中文的无法查询的原因及处理方法

条件中带的是中文无法查询出,因为字段sender_su_name是nvarchar类型的,需要前面接个N SELECT * FROM [test].[dbo].[Ship_User_Email]  WHERE [sender_su_name]=N'奖励' 为什么要带N如下解释: 使用 Unicode 数据 Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案.所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符.这保证了同一个位模

SQL Server中,Numric,Decimal,Money三种字段类型的区别

都是精确数据类型, 前两个可以自己定义长度和小数位数, Money的定义相当于Numric(19,4) numeric(10,2) 表示最大可以放10位数,但这10位数里有2位是小数如: 12345678.12 numeric 功能上等同于 decimal. sql server的 money 类型其实就是小数类型 decimal .   字节数 长度(小数点前.小数点后) money 8 15位.4位 decimal(19,4) 9 15位.4位(千万亿以下)       smallmoney