所以我要做的是更改一个表,并将列从位更改为整型。尽管当前列中有空值,但我希望将其更改为-1,并且不允许使用空值。由于位仅包含0和1,如何将列更改为INT并将Null值设置为-1
我在想一些类似的事情
ALTER TABLE TABLENAME
ALTER COLUMN COLUMNAME INT SET DEFAULT -1
WHEN NULL THEN CAST(-1 AS INT)发布于 2014-06-26 04:08:45
希望下面的代码片段能帮到你。
--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发布于 2014-06-26 04:13:55
正确的语法是:
ALTER TABLE {TABLENAME}
ALTER {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}一步一步地做,如下所示
create table test2(id int not null identity primary key ,
col bit);
ALTER TABLE test2
ALTER COLUMN col INT NULL --Alter to change the type to INT
alter table test2
add constraint dflt default -1 for col --Alter to create a default value发布于 2014-06-26 03:59:13
我认为您必须创建一个新列并在三个单独的update语句中更新它的值,然后删除旧列并重命名新列
https://stackoverflow.com/questions/24417384
复制相似问题