我在 sql server 中创建了表格。我还在该表中插入了数据/行。
现在我想在他们之间建立关系意味着我想在其中创建外键约束,是否可能?
每当我尝试在表之间创建关系时,就会出现问题。 “允许保存更改,您所做的更改需要表重新创建和删除”
请建议我应该怎么做才能建立关系(外键)?
我的孩子表设计就是这个
这是我的父表: -
请现在请更改我应该写的更改查询..?
答案 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)
您可以尝试此链接 "Error message when you try to save a table in SQL Server 2008: "Saving changes is not permitted"
另一种解决方案如下。
答案 3 :(得分:0)
您只能添加现有数据未违反的外部约束。您可能还必须首先添加合适的索引,尽管这取决于DBMS。在任何情况下,首先要确保您的现有数据与您要引入的外键兼容。换句话说,如果您先创建外键,然后插入数据,则不应产生任何外键违规。