sql-server - SQL更改表中的列从位到整数

标签 sql-server bit alter-table

所以我想要做的是更改一个表并将列从 BIT 更改为 INT。虽然当前列中存在空值,但我想更改为 -1 并且不允许为空。由于 BIT 仅保存 0 和 1,我如何将列更改为 INT 并将 Null 值设置为 -1

我在想一些类似的事情

ALTER TABLE TABLENAME
ALTER COLUMN COLUMNAME INT SET DEFAULT -1
WHEN NULL THEN CAST(-1 AS INT)

最佳答案

希望以下代码片段对您有所帮助。

--Created table for testing
CREATE TABLE Test(COl Bit)

--Insertint values
INSERT INTO Test VALUES(0)
INSERT INTO Test VALUES(NULL)
INSERT INTO Test VALUES(1)

--Change the column type
ALTER TABLE Test ALTER COLUMN COL INT

-- Update null values to -1
UPDATE Test SET COL = ISNULL(COL,-1) WHERE COL is NULL

-- Changing the column to not null
ALTER TABLE Test ALTER COLUMN COL int NOT NULL

关于sql-server - SQL更改表中的列从位到整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24417384/

相关文章:

html - Sql Server 创建 html 标签

mysql - 如何检查 MySQL 中的 BIT 数据类型?

MySQL 错误代码 : 1215. 无法添加外键约束

sql - SQL查询的性能

sql-server - SQL Server 2008 事务处理中的双倍

java - 将字节转换为整数 - 为什么每个字节与 0xff 相与?

c - 为什么会出现取消引用指针错误?

ios - 核心数据 Swift 中的 ALTER 命令

mysql - ALTER TABLE 添加约束

sql - 每个组的第二个最大值 - SQL