SQL Server:将外键设置为特定值

时间:2013-02-22 15:31:42

标签: sql-server foreign-keys

我不确定构建问题的最佳方法是什么。

我有一个包含外键列的表。默认情况下,外键设置为NOT NULL,我想暂时保留它,因为这可能是最终结果。但是现在可能存在不需要(并且具有)外键值的记录,并且我想以某种方式区分它们,因此尽可能清楚地表明这些记录与另一个记录不同。

我试过,但似乎我不能使用bigint的负数,这是我的SQL Server表中外键的值。我想这是非常标准的东西,除了将外键设为NULL之外,在这种情况下最好的做法是什么?

2 个答案:

答案 0 :(得分:3)

不确定为什么HABO没有得到答案,因为这几乎是你唯一的选择。

  1. 使其为空
  2. 在引用的表中创建一行并将其设置为TBD或您喜欢的任何名字对象并使用其中的ID而不是NULL
  3. 如果您的记录不需要FK而且永远不会,那么您应该将列设置为NULL,否则使用临时值。

    您不能使用负值,因为如果您有外键约束,您必须引用外表中的某些内容。

答案 1 :(得分:1)

外键约束强制您引用另一个表的现有PK。

目前尚未提及的一种方法是暂时删除约束:

ALTER TABLE YourTable
  DROP CONSTRAINT fk_something