¿Cuál es la mejor práctica para crear un campo yes/no
ie Boolean
cuando se convierte de access database
o en general?
fuente
¿Cuál es la mejor práctica para crear un campo yes/no
ie Boolean
cuando se convierte de access database
o en general?
El equivalente es un BIT
campo.
En SQL
usa 0
y 1
para establecer un campo de bits (como un campo sí / no en Access). En Management Studio se muestra como un valor falso / verdadero (al menos en versiones recientes).
Al acceder a la base de datos a través de ASP.NET, expondrá el campo como un valor booleano.
El BIT
tipo de datos generalmente se usa para almacenar boolean
valores ( 0
para false
, 1
para true
).
BIT
especifica en el estándar SQL? Me está costando encontrarlo. Lo más cercano que pude ver es "tipo booleano".
Puedes usar el bit
tipo de columna.
Puedes usar el BIT
campo.
Para agregar una columna BIT a una tabla existente, el comando SQL se vería así:
ALTER TABLE table_name ADD yes_no BIT
Si desea crear una nueva tabla, se podría hacer: CREATE TABLE table_name (yes_no BIT)
.
Puedes usar el tipo de datos bit
Los valores insertados que sean mayores que 0 se almacenarán como '1'
Los valores insertados que sean inferiores a 0 se almacenarán como '1'
Los valores insertados como '0' se almacenarán como '0'
Esto es válido para MS SQL Server 2012 Express
0
es falso, cualquier no 0
número es verdadero. También era común que -1 sea el valor predeterminado para verdadero porque en binario con signo tiene cada bit establecido en 1. Hoy en día es muy común ver 1 como el valor predeterminado para verdadero (solo el conjunto de bits menos significativo).
Ya hay respuestas que dicen el uso de Bit. Agregaré más a estas respuestas.
Debe usar bit para representar valores booleanos.
Observaciones del artículo de MSDN.
El bit puede tomar un valor de 1, 0 o NULL.
El motor de base de datos de SQL Server optimiza el almacenamiento de columnas de bits. Si hay 8 o menos columnas de bits en una tabla, las columnas se almacenan como 1 byte. Si hay de 9 a 16 columnas de bit, las columnas se almacenan como 2 bytes, y así sucesivamente.
Los valores de cadena TRUE y FALSE se pueden convertir en valores de bit: TRUE se convierte en 1 y FALSE se convierte en 0.
La conversión a bit promueve cualquier valor distinto de cero a 1.
NOT NULL
Como Bit tienen valores 1, 0 y NULL. Ver tabla de verdad para esto. Entonces, planifique los valores en consecuencia. Puede agregar confusión al permitir un valor NULL para el tipo de datos de bit.
Ejemplo de uso al crear una tabla:
[ColumnName] BIT NULL DEFAULT 0
Puedes usar el BIT
campo
Para crear una nueva tabla:
CREATE TABLE Tb_Table1
(
ID INT,
BitColumn BIT DEFAULT 1
)
Agregar columna en la tabla existente:
ALTER TABLE Tb_Table1 ADD BitColumn BIT DEFAULT 1
Para insertar registro:
INSERT Tb_Table1 VALUES(11,0)
bit
será el más simple y también ocupará el menor espacio. No muy detallado en comparación con "S / N", pero estoy bien con eso.
bit
Es la opción más adecuada. De lo contrario, una vez lo usé int
para ese propósito. 1
por true
y 0
para false
.
En SQL Server Management Studio de cualquier versión, use
BIT
como tipo de datos
que le proporcionará con True
o False
opciones de valor. en caso de que quiera usar Solo 1
o 0
luego puede usar este método:
CREATE TABLE SampleBit(
bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)
Pero te aconsejaré estrictamente BIT
como la MEJOR opción. Espero que sea de gran ayuda para alguien.