Как лучше всего создать поле yes/no
, т.е. Boolean
при преобразовании из access database
или в целом?
Как создать логическое поле да / нет на сервере SQL?
Ответы (11)
Эквивалент - поле BIT
.
В SQL
вы используете 0
и 1
для установки битового поля (так же, как поле да / нет в Access). В Management Studio он отображается как ложное / истинное значение (по крайней мере, в последних версиях).
При доступе к базе данных через ASP.NET поле отображается как логическое значение.
Тип данных BIT
обычно используется для хранения boolean
значений (0
для false
, 1
для true
).
BIT
указан в стандарте SQL? Мне трудно его найти. Ближайшее, что я мог видеть, - это логический тип.
- person asgs; 01.07.2016
Вы можете использовать тип столбца bit
.
Вы можете использовать поле BIT
.
Для добавления столбца BIT в существующую таблицу команда SQL будет выглядеть так:
ALTER TABLE table_name ADD yes_no BIT
Если вы хотите создать новую таблицу, вы можете сделать: CREATE TABLE table_name (yes_no BIT)
.
Вы можете использовать тип данных bit
Вставленные значения больше 0 будут сохранены как '1'.
Вставленные значения меньше 0 будут сохранены как '1'.
Значения, вставленные как «0», будут сохранены как «0».
Это верно для MS SQL Server 2012 Express.
0
ложно, любое число, отличное от 0
, истинно. Также часто -1 было значением по умолчанию для истины, потому что в двоичном формате со знаком каждый бит установлен в 1. В настоящее время очень часто встречается 1 как значение по умолчанию для истины (установлен только младший значащий бит).
- person CJ Dennis; 27.06.2016
Уже есть ответы, говорящие об использовании Bit. Я дополню эти ответы.
Для представления логических значений следует использовать bit.
Замечания из статьи MSDN.
Бит может принимать значение 1, 0 или NULL.
Компонент SQL Server Database Engine оптимизирует хранение битовых столбцов. Если в таблице 8 или менее битовых столбцов, они сохраняются как 1 байт. Если имеется от 9 до 16 битных столбцов, столбцы сохраняются как 2 байта и так далее.
Строковые значения ИСТИНА и ЛОЖЬ могут быть преобразованы в битовые значения: ИСТИНА преобразуется в 1, а ЛОЖЬ преобразуется в 0.
Преобразование в бит переводит любое ненулевое значение в 1.
Примечание. Рекомендуется сохранять значения 1 и 0 только с типом данных NOT NULL
.
As Bit имеют значения 1, 0 и NULL. См. Таблицу истинности для этого. Так что планируйте ценности соответственно. Это может внести путаницу, если разрешить значение NULL для битового типа данных.
Bit can take a value of 1, 0, or NULL.
Если битовый тип данных допускает значения NULL, мне не нужно указывать NULL в определении поля? Это определение заставляет меня думать, что [field1] [bit] NULL
и [field1] [bit]
эквивалентны?
- person spencer741; 08.02.2021
Пример использования при создании таблицы:
[ColumnName] BIT NULL DEFAULT 0
Вы можете использовать поле BIT
Чтобы создать новую таблицу:
CREATE TABLE Tb_Table1
(
ID INT,
BitColumn BIT DEFAULT 1
)
Добавление столбца в существующую таблицу:
ALTER TABLE Tb_Table1 ADD BitColumn BIT DEFAULT 1
Чтобы вставить запись:
INSERT Tb_Table1 VALUES(11,0)
bit
будет самым простым и при этом займет меньше всего места. Не очень многословно по сравнению с «Д / Н», но меня это устраивает.
bit
- самый подходящий вариант. В противном случае я однажды использовал int
для этой цели. 1
для true
& 0
для false
.
В SQL Server Management Studio любой версии используйте
BIT
в качестве типа данных
который предоставит вам варианты True
или False
значений. если вы хотите использовать Only 1
или 0
, вы можете использовать этот метод:
CREATE TABLE SampleBit(
bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)
Но я строго рекомендую BIT
как ЛУЧШИЙ вариант. Надеюсь полностью это поможет кому-то.