如何使用指向计算列的外键?

时间:2014-09-23 10:29:56

标签: sql-server

我有这张桌子:

CREATE TABLE [dbo].[Question] (
    [QuestionId]       INT              IDENTITY (1, 1) NOT NULL,
    [Text]             NVARCHAR (4000)  NULL,
    [QuestionUId]      UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
);

我想创建一个外键,将我的另一个表QuestionUId中的AdminTestQuestion链接回QuestionUId表中的Question

  

参考表' [dbo]。[问题]'不包含与外键中的引用列列表匹配的主键或候选键。如果引用的列是计算列,则应该保留它。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

首先:这是 NOT 计算列 - 它只是一个带有默认约束的常规列...

对于要用于外键引用的表中的列,它必须是该表的主键,或者必须具有唯一索引上面。

所以在这里,您需要做的就是在列上添加唯一索引

CREATE UNIQUE INDEX UIX_QuestionUid ON dbo.Question(QuestionUid)

然后你应该能够将它作为外键引用。