in

¿Existe un tipo de datos booleano en Microsoft SQL Server como en MySQL?

apple touch icon@2

Hay un tipo de datos booleano en SQL Server. Sus valores pueden ser TRUE, FALSE o UNKNOWN. Sin embargo, el tipo de datos booleano es solo el resultado de una expresión booleana que contiene alguna combinación de operadores de comparación (p.ej =, <>, <, >=) o operadores logicos (p.ej AND, OR, IN, EXISTS). Las expresiones booleanas solo se permiten en un puñado de lugares, incluido el WHERE cláusula, HAVING cláusula, la WHEN cláusula de un CASE expresión o el predicado de un IF o WHILE declaración de control de flujo.

Para todos los demás usos, incluido el tipo de datos de una columna en una tabla, no se permite booleano. Para esos otros usos, el BIT se prefiere el tipo de datos. Se comporta como un reducido INTEGER que permite solo los valores 0, 1 y NULL, a menos que esté más restringido con un NOT NULL restricción de columna o una CHECK restricción.

Para usar un BIT columna en una expresión booleana, debe compararse utilizando un operador de comparación como =, <> o IS NULL. p.ej

SELECT
    a.answer_body
FROM answers AS a
WHERE a.is_accepted = 0;

Desde una perspectiva de formato, una bit el valor normalmente se muestra como 0 o 1 en el software del cliente. Cuando se requiere un formato más fácil de usar y no se puede manejar en un nivel de aplicación frente a la base de datos, se puede convertir «justo a tiempo» usando un CASE expresión, por ejemplo

SELECT
    a.answer_body,
    CASE a.is_accepted WHEN 1 THEN 'TRUE' ELSE 'FALSE' END AS is_accepted
FROM answers AS a;

Almacenar valores booleanos como un tipo de datos de caracteres como char(1) o varchar(5) También es posible, pero eso es mucho menos claro, tiene más sobrecarga de almacenamiento / red y requiere CHECK restricciones en cada columna para restringir valores ilegales.

Como referencia, el esquema de answers tabla sería similar a:

CREATE TABLE answers (
    ...,
    answer_body nvarchar(MAX) NOT NULL,
    is_accepted bit NOT NULL DEFAULT (0)
);

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

ethical hacking

Tutorial de piratería ética

gfg 200x200 min

enumeración en Java – GeeksforGeeks