SQL Server:带有ADD新列的ALTER

Nat*_*Pet 8 sql sql-server alter-table

我在SQL Server中有以下语句:

ALTER TABLE [dbo].[TruckTbl] 
ADD [TruckState] [bit] NULL DEFAULT 0;
Run Code Online (Sandbox Code Playgroud)

这样做是将任何新记录默认为0.

对于现有记录,如何在语句中获取和说明默认为0.

我知道我可以去做更新,但无论如何要在上述ALTER声明中进行更新?

Mar*_*ith 18

使用该WITH VALUES条款

 ALTER TABLE [dbo].[TruckTbl] ADD [TruckState] [bit] NULL DEFAULT 0 WITH VALUES;
Run Code Online (Sandbox Code Playgroud)

虽然我同意另一个答案,但如果要将所有现有行设置为0并且将来的插入具有默认值,则该列应该可以为空,这似乎很奇怪.您是否需要在NULL此处允许作为列值?

  • 很酷,从来不知道*存在. (2认同)