如何在MS SQL中的现有(填充)表中添加NOT NULL FOREIGN KEY列?

Jim*_*mbo 8 sql-server nullable sql-server-2005 constraints foreign-keys

我需要向现有(已填充)表添加NOT NULL列,该表将是另一个表的外键.这带来了两个问题:

  1. 添加列时,其值不能为null - 使用默认值不是一个选项(除非稍后删除),因为当用户输入新记录时(即应用程序尝试时),在服务器端验证中使用数据库逻辑要使用具有空值的此字段添加记录,数据库会抛出应用程序捕获并返回给用户的错误,提示他们更正错误.

  2. 该列具有外键约束,这意味着它的值也必须存在于外表中.

最好的方法是什么?

Kje*_*dal 16

创建列,但允许NULL.使用外键表中的正确数据填充列.更改列添加非空.添加外键约束.

  • 您可以使用默认值添加列,然后复制正确的数据,然后删除默认约束.不同的路径,相同的步数.我不认为它会变得"冷静". (2认同)