我最好使用哪种数据类型在sql server中存储标志字段?

Nir*_*raj 6 database sql-server-2005 sql-server-2008

我应该优先使用哪种数据类型来存储sql server中的标志字段,bit(如果我只有0,1和null),tinyint,smallint或int用于不能容纳到位的标志?它会影响我的查询性能吗?

Ric*_*ich 1

bit
Run Code Online (Sandbox Code Playgroud)

它是一个布尔值,所以它只有 1 或 0,并且不需要存储整个字节。另外,您可以在表设计中将其设置为空。

  • 这里需要强调一下:SQL Server“bit”数据类型不是布尔值。说明这一点的最简单方法是“SELECT 'hmm' WHERE Cast(1 As bit)”。您将收到错误,因为 where 子句不进行计算。如果它是一个真正的布尔值,那么您不需要添加等于运算符来进行编译。 (2认同)