所以我想要做的是更改一个表并将列从 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/