在这些表中插入数据后,如何在表之间创建外键?

时间:2011-06-14 07:25:11

标签: sql-server

我在 sql server 中创建了表格。我还在该表中插入了数据/行。

现在我想在他们之间建立关系意味着我想在其中创建外键约束,是否可能?

每当我尝试在表之间创建关系时,就会出现问题。 “允许保存更改,您所做的更改需要表重新创建和删除”

请建议我应该怎么做才能建立关系(外键)?

我的孩子表设计就是这个

this is my child table

这是我的父表: - this is my parent table

请现在请更改我应该写的更改查询..?

4 个答案:

答案 0 :(得分:1)

您可以使用以下脚本执行此操作:

 alter table ChildTable
     add constraint FK_ChildTable_ColumnName foreign key (ColumnName) references ParentTable(PrimaryKeyColumnName)

[编辑]如果我正确阅读您的描述,脚本将是:

 alter table emp
     add constraint FK_emp_salary foreign key(salary) references testing(roll)

答案 1 :(得分:1)

我认为问题是因为使用GUI时的功能。如果您看一下这个link,它会告诉您如何解决它。这是一项功能,可以防止您丢弃并重新创建表,这是SSMS在单击“确定”时在后台执行的操作。

之前发布的代码是执行此操作的最佳方式。

答案 2 :(得分:1)

答案 3 :(得分:0)

您只能添加现有数据未违反的外部约束。您可能还必须首先添加合适的索引,尽管这取决于DBMS。在任何情况下,首先要确保您的现有数据与您要引入的外键兼容。换句话说,如果您先创建外键,然后插入数据,则不应产生任何外键违规。