关于SQL Server中bit类型字段增删查改的一些事

前言

本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说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

  

  

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

时间: 2024-09-20 21:30:01

关于SQL Server中bit类型字段增删查改的一些事的相关文章

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

原文:SQL Server 中BIT类型字段增删查改那点事 话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2 当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了. 废话不多,直接上代码看结果就好了. 先建一个测试表 CREATE TABLE TestBIT ( Id INT IDENTITY(1,1), BitCol

[Python]Python/PHP如何查询sql server中NTEXT类型数据

[Python]Python/PHP如何查询sql server中NTEXT类型数据 Version Date Creator Description 1.0.0.1 2006-11-23 郑昀 草稿   继续阅读之前,我们假设您熟悉以下知识: n         Python / PHP n         SQL Server 2000 SP4以上版本的Microsoft sql server n         pymssql n         NTEXT类型 本文讨论了在Python中

.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

java中sql语句的具体用法,增删查改

问题描述 java中sql语句的具体用法,增删查改 java中sql语句的具体用法,增删查改,如何用动态的方法改变查找的位置,输出的位置,判断这个数据是否存在于数据库中 解决方案 这问题有自己思考过么 解决方案二: https://www.baidu.com/link?url=jykznQpWlQYTk0AcnMob3UN-B_iYzOccrutv00x5SAaAVNOYO8xApShvC6wqWeG9NYgnkacMB-lvt08dSMc68a&wd=&eqid=a253ae6e0001

sql server 中合并某个字段值的实例_MsSql

有表如下: 如何获得如下结果: 解法 使用xml转换 代码如下: 复制代码 代码如下:  CREATE TABLE body   (       ID int,       BODY nvarchar(20)      )   go   INSERT INTO body VALUES(1,'aaaa')   INSERT INTO body VALUES(2,'bbbb')   INSERT INTO body VALUES(1,'cccccc')   INSERT INTO body VALU

Oracle 实现类似SQL Server中自增字段的一个办法_oracle

相关代码如下: 1. 创建sequence: 复制代码 代码如下: CREATE SEQUENCE SEQU_DATA_DATAINFO INCREMENT BY 1 START WITH 1 NOCYCLE NOCACHE NOORDER; 2. 创建触发器: 复制代码 代码如下: create or replace TRIGGER TRIG_TEST BEFORE INSERT ON TABLE1 FOR EACH ROW DECLARE tmpVar NUMBER; BEGIN tmpVa

BIT类型在SQL Server中的存储大小

对于一般的INT.CHAR.tinyint等数据类型,他们占用的存储空间都是以Byte字节为单位的,但是BIT类型由于只有0和1或者说false和true,这种情况只需要一个Bit位就可以表示了,那么在SQL Server中BIT类型到底占用了多少空间?是不是由一个Bit位来存储的?或者可能是使用一个字节来存储的? 这两个答案都不正确!!!实际上BIT类型占用的空间与BIT类型的列所在表的位置有关,有些情况下BIT占用了一个字节,有些情况下BIT实际占用了几个位(几个BIT类型的列共用一个字节)

在SQL Server中修改字段类型和字段名称

  在SQL Server中修改字段类型和字段名称 --以下是完整的SQL执行语句 if exists(select * from syscolumns where id=object_id('数据表名称') and name='字段名') --判断该字段是否存在 begin ALTER TABLE 表明 ALTER COLUMN 字段名 VARCHAR(64);--更改类型 end GO if exists(select * from syscolumns where id=object_id

各种类型文件在SQL Server中存储的解决方案

server|解决 数据的持久化是开发的基础性工作,我们不可避免要将各种的类型文件持久化,关于文件(或是大对象)的存储,我在我的blog http://www.cnblogs.com/supercode/articles/156744.html谈过今天我们从设计的角度来实现这功能,从本文中您将了解道以下内容l         SQL Server中的数据类型l         数据表,存储过程的设计l         逻辑层实现各种类型文件的自动转化l         DataGrid中的自定义