我知道在 SQL Server 中向包含数据的表中添加列时,该列必须具有 NULL 选项或默认值。否则 SQL Server 会用什么填充新行?
但是,我不知道为什么不能将 NOT NULL 列添加到空表中。我已经在 SQL 2008 的两个实例和 SQL 2005 的一个实例上进行了尝试,没有任何问题。但是,使用 SQL 2000 的客户确实存在此问题。这与 SQL 2000 有关还是您可以关闭的选项。让我们希望这是一个选择。
Select @@Version
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 版权所有 (c) 1988-2003 Microsoft Corporation Developer Edition on Windows NT 5.1(Build 2600:Service Pack 3)
Select count(*) from actinv
0
ALTER TABLE [ActInv] ADD [BATCHNUMBER] NVARCHAR(50) NOT NULL
Msg 4901, Level 16, State 1, Line 1 ALTER TABLE 只允许添加可以包含空值或指定了 DEFAULT 定义的列。无法将列“BATCHNUMBER”添加到表“ActInv”,因为它不允许空值并且未指定 DEFAULT 定义。