我在SQL Server中有以下语句:
ALTER TABLE [dbo].[TruckTbl]
ADD [TruckState] [bit] NULL DEFAULT 0;
这将默认任何新记录为0。
对于现有记录,我该如何在语句中获取并将其默认为0。
我知道我可以进行更新,但有没有办法在上面的 ALTER
语句中进行更新?
我在SQL Server中有以下语句:
ALTER TABLE [dbo].[TruckTbl]
ADD [TruckState] [bit] NULL DEFAULT 0;
这将默认任何新记录为0。
对于现有记录,我该如何在语句中获取并将其默认为0。
我知道我可以进行更新,但有没有办法在上面的 ALTER
语句中进行更新?
使用 WITH VALUES
子句。
ALTER TABLE [dbo].[TruckTbl] ADD [TruckState] [bit] NULL DEFAULT 0 WITH VALUES;
虽然我同意其他回答,但如果您将所有现有行设置为0
并为将来插入设置了默认值,那么该列根本不应该可空。您是否需要在此处允许NULL
作为列值?
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
[WITH VALUES]
E.g
ALTER TABLE Temp
ADD ID int NOT NULL DEFAULT(1)